Contents of /alx-src/branches/alxconf-060/plugins/rdesktop/plugin.sh
Parent Directory | Revision Log
Revision 5890 -
(show annotations)
(download)
(as text)
Fri Nov 28 12:12:48 2014 UTC (9 years, 5 months ago) by niro
File MIME type: application/x-sh
File size: 4266 byte(s)
Fri Nov 28 12:12:48 2014 UTC (9 years, 5 months ago) by niro
File MIME type: application/x-sh
File size: 4266 byte(s)
-added alsa-lib to plugin_packages
1 | # this script gets included by config_sessions |
2 | |
3 | PLUGIN_NAME="rdesktop" |
4 | PLUGIN_MENUITEM_NAME="${PLUGIN_NAME}" |
5 | PLUGIN_MENUITEM_EXEC="${PLUGIN_NAME}" |
6 | PLUGIN_MENUITEM_PARAM="" |
7 | PLUGIN_MENUITEM_WORKDIR="" |
8 | PLUGIN_MENUITEM_ICON="" |
9 | |
10 | PLUGIN_AUTOSTART=0 |
11 | PLUGIN_PACKAGES="openssl alsa-lib rdesktop" |
12 | PLUGIN_CONFIG="/etc/alxconfig-ng/plugin-${PLUGIN_NAME}.conf" |
13 | |
14 | # include alx functions |
15 | source /etc/alxconfig-ng/config.rc |
16 | source /etc/alxconfig-ng/serial |
17 | source ${ALX_FUNCTIONS}/common |
18 | source ${ALX_FUNCTIONS}/mysqlfunctions |
19 | # missing colors |
20 | COLRED="\033[1;6m\033[31m" |
21 | COLDEFAULT="\033[0m" |
22 | |
23 | die() |
24 | { |
25 | echo "Error: $@" |
26 | echo -e "${COLRED}Plugin \"${PLUGIN_NAME}\" will be disabled.${COLDEFAULT}" |
27 | [ -f ${PLUGIN_CONFIG} ] && rm ${PLUGIN_CONFIG} |
28 | exit 1 |
29 | } |
30 | |
31 | install_plugin() |
32 | { |
33 | local i |
34 | for i in ${PLUGIN_PACKAGES} |
35 | do |
36 | if [[ -z $(magequery -n ${i}) ]] |
37 | then |
38 | MAGE_BOOTSTRAP=true mage install ${i} |
39 | mage clean |
40 | fi |
41 | done |
42 | } |
43 | |
44 | setup_plugin() |
45 | { |
46 | local CONFIG |
47 | local opts |
48 | |
49 | evaluate_table plugin_rdesktop |
50 | # sanitize variables |
51 | opts="" |
52 | if [[ -z ${plugin_rdesktop_session_name} ]] |
53 | then |
54 | die "session_name variable is missing" |
55 | fi |
56 | if [[ -z ${plugin_rdesktop_server} ]] |
57 | then |
58 | die "server variable is missing" |
59 | fi |
60 | if [[ -z ${plugin_rdesktop_username} ]] |
61 | then |
62 | plugin_rdesktop_username="" |
63 | else |
64 | opts+=" -u '${plugin_rdesktop_username}'" |
65 | fi |
66 | if [[ -z ${plugin_rdesktop_password} ]] |
67 | then |
68 | plugin_rdesktop_password="" |
69 | else |
70 | opts+=" -p '${plugin_rdesktop_password}'" |
71 | fi |
72 | if [[ -z ${plugin_rdesktop_domain} ]] |
73 | then |
74 | plugin_rdesktop_domain="" |
75 | else |
76 | opts+=" -d '${plugin_rdesktop_domain}'" |
77 | fi |
78 | if [[ -z ${plugin_rdesktop_resolution} ]] |
79 | then |
80 | die "resolution is missing" |
81 | else |
82 | case ${plugin_rdesktop_resolution} in |
83 | fullscreen) opts+=" -f" ;; |
84 | seamless) opts+=" -A" ;; |
85 | *) opts+=" -g '${plugin_rdesktop_resolution}'" ;; |
86 | esac |
87 | fi |
88 | if [[ -z ${plugin_rdesktop_keyboard} ]] |
89 | then |
90 | plugin_rdesktop_keyboard="" |
91 | else |
92 | opts+=" -k '${plugin_rdesktop_keyboard}'" |
93 | fi |
94 | if [[ -z ${plugin_rdesktop_shell} ]] |
95 | then |
96 | plugin_rdesktop_shell="" |
97 | else |
98 | opts+=" -s '${plugin_rdesktop_shell}'" |
99 | fi |
100 | if [[ -z ${plugin_rdesktop_runpath} ]] |
101 | then |
102 | plugin_rdesktop_runpath="" |
103 | else |
104 | opts+=" -c '${plugin_rdesktop_runpath}'" |
105 | fi |
106 | |
107 | CONFIG="${PLUGIN_CONFIG}" |
108 | clearconfig |
109 | addconfig "PLUGIN_CONFIG_SESSION_NAME=\"${plugin_rdesktop_session_name}\"" |
110 | addconfig "PLUGIN_CONFIG_SERVER=\"${plugin_rdesktop_server}\"" |
111 | addconfig "PLUGIN_CONFIG_PARAM=\"${opts}\"" |
112 | } |
113 | |
114 | # create desktop buttons |
115 | create_menuitem() |
116 | { |
117 | if [ -f ${PLUGIN_CONFIG} ] |
118 | then |
119 | source ${PLUGIN_CONFIG} |
120 | fi |
121 | [[ -z ${PLUGIN_CONFIG_PARAM} ]] && PLUGIN_CONFIG_PARAM="" |
122 | [[ -z ${PLUGIN_CONFIG_SERVER} ]] && PLUGIN_CONFIG_SERVER="" |
123 | |
124 | # no menuentries if egk_scm plugin is installed, this one will be used instead then |
125 | if [ -f ${SETTINGSPATH}/plugins/egk_scm ] |
126 | then |
127 | PLUGIN_MENUITEM_NAME="" |
128 | PLUGIN_MENUITEM_EXEC="" |
129 | PLUGIN_MENUITEM_PARAM="" |
130 | PLUGIN_MENUITEM_WORKDIR="" |
131 | PLUGIN_MENUITEM_ICON="" |
132 | else |
133 | if [[ ! -z ${PLUGIN_CONFIG_SESSION_NAME} ]] |
134 | then |
135 | PLUGIN_MENUITEM_NAME="${PLUGIN_CONFIG_SESSION_NAME}" |
136 | fi |
137 | fi |
138 | |
139 | # don't touch these echo, define variables above |
140 | echo "PLUGIN_MENUITEM_NAME=\"${PLUGIN_MENUITEM_NAME}\"" |
141 | echo "PLUGIN_MENUITEM_EXEC=\"${PLUGIN_MENUITEM_EXEC}\"" |
142 | echo "PLUGIN_MENUITEM_PARAM=\"${PLUGIN_CONFIG_PARAM} ${PLUGIN_MENUITEM_PARAM} ${PLUGIN_CONFIG_SERVER}\"" |
143 | echo "PLUGIN_MENUITEM_WORKDIR=\"${PLUGIN_MENUITEM_WORKDIR}\"" |
144 | echo "PLUGIN_MENUITEM_ICON=\"${PLUGIN_MENUITEM_ICON}\"" |
145 | } |
146 | |
147 | autostart_plugin() |
148 | { |
149 | # only autostart if plugin config was found |
150 | if [ -f ${PLUGIN_CONFIG} ] |
151 | then |
152 | evaluate_table plugin_rdesktop |
153 | fi |
154 | # sanitize variables |
155 | [[ -z ${plugin_rdesktop_autostart} ]] && plugin_rdesktop_autostart=0 |
156 | |
157 | echo "PLUGIN_AUTOSTART=\"${plugin_rdesktop_autostart}\"" |
158 | echo "PLUGIN_MENUITEM_NAME=\"${PLUGIN_MENUITEM_NAME}\"" |
159 | } |
160 | |
161 | uninstall_plugin() |
162 | { |
163 | [ -f ${PLUGIN_CONFIG} ] && rm ${PLUGIN_CONFIG} |
164 | |
165 | local i |
166 | for i in ${PLUGIN_PACKAGES} |
167 | do |
168 | if [[ -n $(magequery -n ${i}) ]] |
169 | then |
170 | MAGE_BOOTSTRAP=true mage uninstall ${i} |
171 | mage clean |
172 | fi |
173 | done |
174 | |
175 | mage clean |
176 | } |
177 | |
178 | case $1 in |
179 | install) install_plugin ;; |
180 | setup) setup_plugin ;; |
181 | menuitem) create_menuitem ;; |
182 | uninstall) uninstall_plugin ;; |
183 | autostart) autostart_plugin ;; |
184 | *) echo "PLUGIN '${PLUGIN_NAME}': unkown operation '$1'" ;; |
185 | esac |