Magellan Linux

Annotation of /mcore-src/trunk/mcore-tools/src/modules/lprng/printing.control.class.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2886 - (hide annotations) (download)
Fri Aug 14 11:39:40 2020 UTC (3 years, 9 months ago) by niro
File size: 2021 byte(s)
-encapsulate all argument variables to control_client() to evaluate them properly later on
1 niro 2585 # $Id$
2    
3     push_config 80_printing_printer
4    
5     help_printing_printer()
6     {
7     local serial="${CLASS_ARGV[0]}"
8     control_client "${serial}" help printing.printer
9     }
10    
11     set_printing_printer()
12     {
13     local serial="${CLASS_ARGV[0]}"
14     local action="${CLASS_ARGV[1]}"
15     local name="${CLASS_ARGV[2]}"
16     local port="${CLASS_ARGV[3]}"
17     # local ip="${CLASS_ARGV[4]}"
18     # local share="${CLASS_ARGV[5]}"
19    
20     case "${action}" in
21     add) enabled=1 ;;
22     del) enabled=0 ;;
23     *)
24     eecho "Unknown action '${action}'"
25     return 1
26     ;;
27     esac
28    
29     if [[ -z ${name} ]]
30     then
31     eecho "No name given"
32     return 1
33     fi
34    
35     id=$(mysqldo "select id from cfg_printers where serial='${serial}' and printer_name='${name}';")
36     if [[ -n ${id} ]]
37     then
38     mysqldo "update cfg_printers set printer_name='${name}', port='${port}',enabled='${enabled}' where id=${id};"
39     else
40     mysqldo "insert into cfg_printers(serial,printer_name,port,enabled) values('${serial}','${name}','${port}','${enabled}');"
41     fi
42     }
43    
44     control_printing_printer()
45     {
46     local serial="${CLASS_ARGV[0]}"
47     push_config_80_printing_printer "${serial}"
48     }
49    
50     push_config_80_printing_printer()
51     {
52     local serial="$1"
53     local values
54     local id
55    
56     values=$(mysqldo "select id from cfg_printers where serial='${serial}';")
57     for id in ${values}
58     do
59 niro 2875 evaluate_table_xml cfg_printers "where id='${id}'"
60 niro 2587 if [[ -z ${cfg_printers_printer_name} ]]
61 niro 2585 then
62     eecho "Name must not be empty id->'${id}'"
63     continue
64     fi
65     if [[ -z ${cfg_printers_enabled} ]]
66     then
67     eecho "Enabled must not be empty id->'${id}'"
68     continue
69     fi
70     if [[ ${cfg_printers_enabled} = 1 ]]
71     then
72 niro 2886 control_client "${serial}" set printing.printer add "\"${cfg_printers_printer_name}\"" "\"${cfg_printers_port}\""
73 niro 2585 elif [[ ${cfg_printers_enabled} = 0 ]]
74     then
75 niro 2886 control_client "${serial}" set printing.printer del "\"${cfg_printers_printer_name}\""
76 niro 2585 # remove from database too
77     mysqldo "delete from cfg_printers where id='${id}';"
78     else
79     eecho "unknown enabled value id->'${id}', cfg_printers_enabled -> '${cfg_printers_enabled}'"
80     return 1
81     fi
82     done
83     }