# $Id$ push_firstboot 80_fluxbox_menuitem push_config 80_fluxbox_menuitem push_config 80_fluxbox_autostart help_fluxbox_menuitem() { local serial="${CLASS_ARGV[0]}" control_client "${serial}" help fluxbox.menuitem } set_fluxbox_menuitem() { local serial="${CLASS_ARGV[0]}" local action="${CLASS_ARGV[1]}" local name="${CLASS_ARGV[2]}" local exec="${CLASS_ARGV[3]}" local workdir="${CLASS_ARGV[4]}" local icon="${CLASS_ARGV[5]}" local id local enabled 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_fluxbox_menuitem where serial='${serial}' and name='${name}';") if [[ -n ${id} ]] then mysqldo "update cfg_fluxbox_menuitem set name='${name}', exec='${exec}', workdir='${workdir}', icon='${icon}', enabled='${enabled}' where id=${id};" else mysqldo "insert into cfg_fluxbox_menuitem(serial,name,exec,workdir,icon,enabled) values('${serial}','${name}','${exec}','${workdir}','${icon}','${enabled}');" fi } control_fluxbox_menuitem() { local serial="${CLASS_ARGV[0]}" push_config_80_fluxbox_menuitem "${serial}" } push_config_80_fluxbox_menuitem() { local serial="$1" local values local id values=$(mysqldo "select id from cfg_fluxbox_menuitem where serial='${serial}';") for id in ${values} do evaluate_table_xml cfg_fluxbox_menuitem "where id='${id}'" if [[ -z ${cfg_fluxbox_menuitem_name} ]] then eecho "Name must not be empty id->'${id}'" continue fi if [[ -z ${cfg_fluxbox_menuitem_enabled} ]] then eecho "Enabled must not be empty id->'${id}'" continue fi if [[ ${cfg_fluxbox_menuitem_enabled} = 1 ]] then control_client "${serial}" set fluxbox.menuitem add "\"${cfg_fluxbox_menuitem_name}\"" "\"${cfg_fluxbox_menuitem_exec}\"" "\"${cfg_fluxbox_menuitem_workdir}\"" "\"${cfg_fluxbox_menuitem_icon}\"" elif [[ ${cfg_fluxbox_menuitem_enabled} = 0 ]] then control_client "${serial}" set fluxbox.menuitem del "\"${cfg_fluxbox_menuitem_name}\"" # remove from database too mysqldo "delete from cfg_fluxbox_menuitem where id='${id}';" else eecho "unknown enabled value id->'${id}', cfg_fluxbox_menuitem_enabled -> '${cfg_fluxbox_menuitem_enabled}'" return 1 fi done } help_fluxbox_autostart() { local serial="${CLASS_ARGV[0]}" control_client "${serial}" help fluxbox.autostart } set_fluxbox_autostart() { local serial="${CLASS_ARGV[0]}" local action="${CLASS_ARGV[1]}" local name="${CLASS_ARGV[2]}" local exec="${CLASS_ARGV[3]}" local id local enabled 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_fluxbox_autostart where serial='${serial}' and name='${name}';") if [[ -n ${id} ]] then mysqldo "update cfg_fluxbox_autostart set name='${name}', exec='${exec}', enabled='${enabled}' where id=${id};" else mysqldo "insert into cfg_fluxbox_autostart(serial,name,exec,enabled) values('${serial}','${name}','${exec}','${enabled}');" fi } control_fluxbox_autostart() { local serial="${CLASS_ARGV[0]}" push_config_80_fluxbox_autostart "${serial}" } push_config_80_fluxbox_autostart() { local serial="$1" local values local id values=$(mysqldo "select id from cfg_fluxbox_autostart where serial='${serial}';") for id in ${values} do evaluate_table_xml cfg_fluxbox_autostart "where id='${id}'" if [[ -z ${cfg_fluxbox_autostart_name} ]] then eecho "Name must not be empty id->'${id}'" continue fi if [[ -z ${cfg_fluxbox_autostart_enabled} ]] then eecho "Enabled must not be empty id->'${id}'" continue fi if [[ ${cfg_fluxbox_autostart_enabled} = 1 ]] then control_client "${serial}" set fluxbox.autostart add "\"${cfg_fluxbox_autostart_name}\"" "\"${cfg_fluxbox_autostart_exec}\"" elif [[ ${cfg_fluxbox_autostart_enabled} = 0 ]] then control_client "${serial}" set fluxbox.autostart del "\"${cfg_fluxbox_autostart_name}\"" # remove from database too mysqldo "delete from cfg_fluxbox_autostart where id='${id}';" else eecho "unknown enabled value id->'${id}', cfg_fluxbox_autostart_enabled -> '${cfg_fluxbox_autostart_enabled}'" return 1 fi done } help_fluxbox_theme() { local serial="${CLASS_ARGV[0]}" control_client "${serial}" help fluxbox.menuitem } set_fluxbox_theme() { local serial="${CLASS_ARGV[0]}" local theme="${CLASS_ARGV[1]}" import_resource cfg_fluxbox_theme "${serial}" theme "${theme}" } control_fluxbox_theme() { local serial="${CLASS_ARGV[0]}" push_config_fluxbox_theme "${serial}" } push_config_80_fluxbox_theme() { local serial="$1" local value value=$(mysqldo "select theme from cfg_fluxbox.theme where serial='${serial}'") if [[ -z ${value} ]] || [[ ${value} = NULL ]] then decho "No theme retrieved" else control_client "${serial}" set fluxbox.theme "\"${value}\"" fi } push_firstboot_80_fluxbox_menuitem() { local serial="$1" local ids ids=$(mysqldo "select id from cfg_fluxbox_menuitem where serial='${serial}';") if [[ -z ${ids} ]] || [[ ${ids} = NULL ]] then # create a empty menu, just delete all entries control_client "${serial}" set fluxbox.menuitem del fi }