Contents of /alx-src/branches/alxconf-060/plugins/egk_scm/plugin.sh
Parent Directory | Revision Log
Revision 3523 -
(show annotations)
(download)
(as text)
Mon Apr 23 07:30:59 2012 UTC (12 years ago) by niro
File MIME type: application/x-sh
File size: 2768 byte(s)
Mon Apr 23 07:30:59 2012 UTC (12 years ago) by niro
File MIME type: application/x-sh
File size: 2768 byte(s)
-configure plugins via sql database
1 | # this script gets called by config_sessions |
2 | |
3 | PLUGIN_NAME="egk_scm" |
4 | PLUGIN_MENUITEM_NAME="SUM_EGK" |
5 | PLUGIN_MENUITEM_EXEC="rdesktop" |
6 | PLUGIN_MENUITEM_PARAM='-r scard:\"eHealth200 Terminal 00 00\"=\"SCM Microsystems Inc. Terminal0-Patient slot 0\",\"eHealth200 Terminal 00 01\"=\"SCM Microsystems Inc. Terminal0-Doctor slot 0\"' |
7 | PLUGIN_MENUITEM_WORKDIR="" |
8 | PLUGIN_MENUITEM_ICON="" |
9 | |
10 | PLUGIN_AUTOSTART=0 |
11 | PLUGIN_PACKAGES="libusb libusb-compat pcsc-lite pcsc-plugin-ehealth200" |
12 | # uses rdesktop plugin config |
13 | PLUGIN_CONFIG="/etc/alxconfig-ng/plugin-rdesktop.conf" |
14 | |
15 | # include alx functions |
16 | source /etc/alxconfig-ng/config.rc |
17 | source /etc/alxconfig-ng/serial |
18 | source ${ALX_FUNCTIONS}/common |
19 | source ${ALX_FUNCTIONS}/mysqlfunctions |
20 | |
21 | install_plugin() |
22 | { |
23 | local i |
24 | for i in ${PLUGIN_PACKAGES} |
25 | do |
26 | if [[ -z $(magequery -n ${i}) ]] |
27 | then |
28 | MAGE_BOOTSTRAP=true mage install ${i} |
29 | mage clean |
30 | fi |
31 | done |
32 | } |
33 | |
34 | setup_plugin() |
35 | { |
36 | return 0 |
37 | } |
38 | |
39 | # create desktop buttons |
40 | create_menuitem() |
41 | { |
42 | if [ -f ${PLUGIN_CONFIG} ] |
43 | then |
44 | source ${PLUGIN_CONFIG} |
45 | |
46 | # use session name from rdesktop if available |
47 | if [[ ! -z ${PLUGIN_CONFIG_SESSION_NAME} ]] |
48 | then |
49 | PLUGIN_MENUITEM_NAME="${PLUGIN_CONFIG_SESSION_NAME}" |
50 | fi |
51 | else |
52 | # rdesktop not configured, disable plugin |
53 | PLUGIN_CONFIG_PARAM="" |
54 | PLUGIN_CONFIG_SERVER="" |
55 | PLUGIN_MENUITEM_NAME="" |
56 | PLUGIN_MENUITEM_EXEC="" |
57 | PLUGIN_MENUITEM_PARAM="" |
58 | PLUGIN_MENUITEM_WORKDIR="" |
59 | PLUGIN_MENUITEM_ICON="" |
60 | fi |
61 | |
62 | # don't touch these echo, define variables above |
63 | echo "PLUGIN_MENUITEM_NAME=\"${PLUGIN_MENUITEM_NAME}\"" |
64 | echo "PLUGIN_MENUITEM_EXEC=\"${PLUGIN_MENUITEM_EXEC}\"" |
65 | echo "PLUGIN_MENUITEM_PARAM=\"${PLUGIN_CONFIG_PARAM} ${PLUGIN_MENUITEM_PARAM} ${PLUGIN_CONFIG_SERVER}\"" |
66 | echo "PLUGIN_MENUITEM_WORKDIR=\"${PLUGIN_MENUITEM_WORKDIR}\"" |
67 | echo "PLUGIN_MENUITEM_ICON=\"${PLUGIN_MENUITEM_ICON}\"" |
68 | } |
69 | |
70 | autostart_plugin() |
71 | { |
72 | # only run autostart if rdesktop was configured |
73 | if [ -f ${PLUGIN_CONFIG} ] |
74 | then |
75 | source ${PLUGIN_CONFIG} |
76 | evaluate_table plugin_egk_scm |
77 | |
78 | # use session name from rdesktop if available |
79 | if [[ ! -z ${PLUGIN_CONFIG_SESSION_NAME} ]] |
80 | then |
81 | PLUGIN_MENUITEM_NAME="${PLUGIN_CONFIG_SESSION_NAME}" |
82 | fi |
83 | fi |
84 | # sanitize variables |
85 | [[ -z ${plugin_egk_scm_autostart} ]] && plugin_egk_scm_autostart=0 |
86 | |
87 | echo "PLUGIN_AUTOSTART=\"${plugin_egk_scm_autostart}\"" |
88 | echo "PLUGIN_MENUITEM_NAME=\"${PLUGIN_MENUITEM_NAME}\"" |
89 | } |
90 | |
91 | uninstall_plugin() |
92 | { |
93 | local i |
94 | for i in ${PLUGIN_PACKAGES} |
95 | do |
96 | if [[ -n $(magequery -n ${i}) ]] |
97 | then |
98 | MAGE_BOOTSTRAP=true mage uninstall ${i} |
99 | mage clean |
100 | fi |
101 | done |
102 | |
103 | mage clean |
104 | } |
105 | |
106 | case $1 in |
107 | install) install_plugin ;; |
108 | setup) setup_plugin ;; |
109 | menuitem) create_menuitem ;; |
110 | autostart) autostart_plugin ;; |
111 | uninstall) uninstall_plugin ;; |
112 | *) echo "PLUGIN '${PLUGIN_NAME}': unkown operation '$1'" ;; |
113 | esac |