18 |
{ |
{ |
19 |
local all_ids |
local all_ids |
20 |
local installed_plugins |
local installed_plugins |
21 |
|
local i |
22 |
|
local plugin |
23 |
|
local keep |
24 |
|
|
25 |
# install needed directories |
# install needed directories |
26 |
[[ ! -d ${SETTINGSPATH}/plugins ]] && install -d ${SETTINGSPATH}/plugins |
[[ ! -d ${SETTINGSPATH}/plugins ]] && install -d ${SETTINGSPATH}/plugins |
33 |
do |
do |
34 |
evaluate_table cfg_plugins "where serial='${ALX_SERIAL}' and id='${i}'" |
evaluate_table cfg_plugins "where serial='${ALX_SERIAL}' and id='${i}'" |
35 |
|
|
36 |
# already installed ? |
# install only if not already installed |
37 |
[[ -f ${SETTINGSPATH}/plugins/${cfg_plugins_plugin} ]] && continue |
if [[ -x ${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh ]] && |
38 |
|
[[ ! -f ${SETTINGSPATH}/plugins/${cfg_plugins_plugin} ]] |
|
if [[ -x ${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh ]] |
|
39 |
then |
then |
40 |
echo " Installing plugin '${cfg_plugins_plugin} ..." |
echo " Installing plugin '${cfg_plugins_plugin} ..." |
41 |
${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh install |
${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh install |
42 |
touch ${SETTINGSPATH}/plugins/${cfg_plugins_plugin} |
touch ${SETTINGSPATH}/plugins/${cfg_plugins_plugin} |
43 |
fi |
fi |
|
done |
|
44 |
|
|
45 |
# uninstall |
# always run plugin setup on every boot to honor any changes |
46 |
for i in ${all_ids} |
if [[ -x ${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh ]] |
|
do |
|
|
evaluate_table cfg_plugins "where serial='${ALX_SERIAL}' and id='${i}'" |
|
|
if is_installed ${cfg_plugins_plugin} |
|
47 |
then |
then |
48 |
echo " Uninstalling plugin '${cfg_plugins_plugin} ..." |
echo " Setting up plugin '${cfg_plugins_plugin} ..." |
49 |
${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh uninstall |
${ALX_PLUGINS}/${cfg_plugins_plugin}/plugin.sh setup |
|
rm -f ${SETTINGSPATH}/plugins/${cfg_plugins_plugin} |
|
50 |
fi |
fi |
51 |
done |
done |
52 |
|
|
53 |
|
# uninstall |
54 |
|
if [ -d ${SETTINGSPATH}/plugins ] |
55 |
|
then |
56 |
|
installed_plugins=$(find ${SETTINGSPATH}/plugins -mindepth 1 -maxdepth 1 -type f -printf '%f\n') |
57 |
|
|
58 |
|
for plugin in ${installed_plugins} |
59 |
|
do |
60 |
|
keep=0 |
61 |
|
for i in ${all_ids} |
62 |
|
do |
63 |
|
evaluate_table cfg_plugins "where serial='${ALX_SERIAL}' and id='${i}'" |
64 |
|
|
65 |
|
if [[ ${plugin} = ${cfg_plugins_plugin} ]] |
66 |
|
then |
67 |
|
keep=1 |
68 |
|
# found, break here |
69 |
|
break |
70 |
|
fi |
71 |
|
done |
72 |
|
|
73 |
|
if [[ ${keep} = 0 ]] |
74 |
|
then |
75 |
|
echo " Uninstalling plugin '${plugin} ..." |
76 |
|
${ALX_PLUGINS}/${plugin}/plugin.sh uninstall |
77 |
|
rm -f ${SETTINGSPATH}/plugins/${plugin} |
78 |
|
fi |
79 |
|
done |
80 |
|
fi |
81 |
} |
} |