Magellan Linux

Diff of /alx-src/branches/alxconf-060/functions/config_plugins.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2747 by niro, Thu Aug 11 19:50:58 2011 UTC revision 3488 by niro, Mon Apr 16 08:49:41 2012 UTC
# Line 3  Line 3 
3    
4  is_installed()  is_installed()
5  {  {
6          local i   local i
7          local item="$1"   local item="$1"
8    
9   for i in ${SETTINGSPATH}/plugins/*   for i in ${SETTINGSPATH}/plugins/*
10   do   do
# Line 18  config_plugins() Line 18  config_plugins()
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
# Line 30  config_plugins() Line 33  config_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} ..."   rc_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} ..."   rc_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     rc_echo "   Uninstalling plugin '${plugin} ..."
76     ${ALX_PLUGINS}/${plugin}/plugin.sh uninstall
77     rm -f ${SETTINGSPATH}/plugins/${plugin}
78     fi
79     done
80     fi
81  }  }

Legend:
Removed from v.2747  
changed lines
  Added in v.3488