# $Id$ push_config 80_printing_printer help_printing_printer() { local serial="${CLASS_ARGV[0]}" control_client "${serial}" help printing.printer } set_printing_printer() { local serial="${CLASS_ARGV[0]}" local action="${CLASS_ARGV[1]}" local name="${CLASS_ARGV[2]}" local port="${CLASS_ARGV[3]}" # local ip="${CLASS_ARGV[4]}" # local share="${CLASS_ARGV[5]}" case "${action}" in add) enabled=1 ;; del) enabled=0 ;; *) eecho "Unknown action '${action}'" return 1 ;; esac if [[ -z ${name} ]] then eecho "No name given" return 1 fi id=$(mysqldo "select id from cfg_printers where serial='${serial}' and printer_name='${name}';") if [[ -n ${id} ]] then mysqldo "update cfg_printers set printer_name='${name}', port='${port}',enabled='${enabled}' where id=${id};" else mysqldo "insert into cfg_printers(serial,printer_name,port,enabled) values('${serial}','${name}','${port}','${enabled}');" fi } control_printing_printer() { local serial="${CLASS_ARGV[0]}" push_config_80_printing_printer "${serial}" } push_config_80_printing_printer() { local serial="$1" local values local id values=$(mysqldo "select id from cfg_printers where serial='${serial}';") for id in ${values} do evaluate_table_xml cfg_printers "where id='${id}'" if [[ -z ${cfg_printers_printer_name} ]] then eecho "Name must not be empty id->'${id}'" continue fi if [[ -z ${cfg_printers_enabled} ]] then eecho "Enabled must not be empty id->'${id}'" continue fi if [[ ${cfg_printers_enabled} = 1 ]] then control_client "${serial}" set printing.printer add "${cfg_printers_printer_name}" "${cfg_printers_port}" elif [[ ${cfg_printers_enabled} = 0 ]] then control_client "${serial}" set printing.printer del "${cfg_printers_printer_name}" # remove from database too mysqldo "delete from cfg_printers where id='${id}';" else eecho "unknown enabled value id->'${id}', cfg_printers_enabled -> '${cfg_printers_enabled}'" return 1 fi done }