Magellan Linux

Diff of /trunk/initscripts/sysvinit/sbin/rc-config

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

revision 3 by niro, Mon Dec 13 22:52:07 2004 UTC revision 104 by niro, Fri Jul 1 18:07:21 2005 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2    
   
 #rc-config2  
   
 #header layout  
   
 #runlevenumber:start  
 #runlevenumber:stop  
 #%rlevels 1:k 2:s  
   
 #start number  
 #%start  
   
 #stop number  
 #%stop  
   
   
 #deps; unused yet  
 #%needs  
 #%before  
 #%after  
   
3  RC_INIT_BASE=/etc/init.d  RC_INIT_BASE=/etc/init.d
4  RC_EXCLUDE="rc functions template splash-functions"  RC_EXCLUDE="rc functions template splash-functions"
5    
# Line 29  VERSION=0.2 Line 8  VERSION=0.2
8  get_run_levels(){  get_run_levels(){
9   local SCRIPT   local SCRIPT
10   local ALL_LEVELS   local ALL_LEVELS
11    
12   SCRIPT=${RC_INIT_BASE}/$1   SCRIPT=${RC_INIT_BASE}/$1
13   ALL_LEVELS=$(grep -i "#%rlevels:" ${SCRIPT} | sed -e 's/#%rlevels://g')   ALL_LEVELS=$(grep -i "#%rlevels:" ${SCRIPT} | sed -e 's/#%rlevels://g')
14    
15   echo ${ALL_LEVELS}   echo ${ALL_LEVELS}
16    
17   return 0   return 0
18  }  }
19    
# Line 42  get_run_levels(){ Line 21  get_run_levels(){
21  get_needs() {  get_needs() {
22   local SCRIPT   local SCRIPT
23   local ALL_LEVELS   local ALL_LEVELS
24    
25   SCRIPT=${RC_INIT_BASE}/$1   SCRIPT=${RC_INIT_BASE}/$1
26   ALL_LEVELS=$(grep -i "#%needs:" ${SCRIPT} | sed -e 's/#%needs://g')   ALL_LEVELS=$(grep -i "#%needs:" ${SCRIPT} | sed -e 's/#%needs://g')
27    
28   echo ${ALL_LEVELS}   echo ${ALL_LEVELS}
29    
30   return 0   return 0
31  }  }
32    
33  get_before() {  get_before() {
34   local SCRIPT   local SCRIPT
35   local ALL_LEVELS   local ALL_LEVELS
36    
37   SCRIPT=${RC_INIT_BASE}/$1   SCRIPT=${RC_INIT_BASE}/$1
38   ALL_LEVELS=$(grep -i "#%before:" ${SCRIPT} | sed -e 's/#%before://g')   ALL_LEVELS=$(grep -i "#%before:" ${SCRIPT} | sed -e 's/#%before://g')
39    
40   echo ${ALL_LEVELS}   echo ${ALL_LEVELS}
41    
42   return 0   return 0
43  }  }
44    
45  get_after() {  get_after() {
46   local SCRIPT   local SCRIPT
47   local ALL_LEVELS   local ALL_LEVELS
48    
49   SCRIPT=${RC_INIT_BASE}/$1   SCRIPT=${RC_INIT_BASE}/$1
50   ALL_LEVELS=$(grep -i "#%after:" ${SCRIPT} | sed -e 's/#%after://g')   ALL_LEVELS=$(grep -i "#%after:" ${SCRIPT} | sed -e 's/#%after://g')
51    
52   echo ${ALL_LEVELS}   echo ${ALL_LEVELS}
53    
54   return 0   return 0
55  }  }
56    
57  get_start() {  get_start() {
58   local SCRIPT   local SCRIPT
59   local ALL_LEVELS   local ALL_LEVELS
60    
61   SCRIPT=${RC_INIT_BASE}/$1   SCRIPT=${RC_INIT_BASE}/$1
62   ALL_LEVELS=$(grep -i "#%start:" ${SCRIPT} | sed -e 's/#%start://g')   ALL_LEVELS=$(grep -i "#%start:" ${SCRIPT} | sed -e 's/#%start://g')
63    
64   echo ${ALL_LEVELS}   echo ${ALL_LEVELS}
65    
66   return 0   return 0
67  }  }
68    
69  get_stop() {  get_stop() {
70   local SCRIPT   local SCRIPT
71   local ALL_LEVELS   local ALL_LEVELS
72    
73   SCRIPT=${RC_INIT_BASE}/$1   SCRIPT=${RC_INIT_BASE}/$1
74   ALL_LEVELS=$(grep -i "#%stop:" ${SCRIPT} | sed -e 's/#%stop://g')   ALL_LEVELS=$(grep -i "#%stop:" ${SCRIPT} | sed -e 's/#%stop://g')
75    
76   echo ${ALL_LEVELS}   echo ${ALL_LEVELS}
77    
78   return 0   return 0
79  }  }
80    
# Line 110  rc_service_add() { Line 89  rc_service_add() {
89   for i in $(get_run_levels ${RC_SERVICE})   for i in $(get_run_levels ${RC_SERVICE})
90   do   do
91   case ${i} in   case ${i} in
92   #start   # start
93   ?:s)   ?:s)
94   [ "${i}" == "7:s" ] && i="sysinit:s"   [ "${i}" == "7:s" ] && i="sysinit:s"
95   echo -e "\t\t[rc${i/:s/}.d -> S${RC_START}]"   echo -e "\t\t[rc${i/:s/}.d -> S${RC_START}]"
96   ln -snf ../init.d/${RC_SERVICE} \   ln -snf ../init.d/${RC_SERVICE} \
97   /etc/rc.d/rc${i/:s/}.d/S${RC_START}${RC_SERVICE}   /etc/rc.d/rc${i/:s/}.d/S${RC_START}${RC_SERVICE}
98   ;;   ;;
99   #stop   # stop
100   ?:k)   ?:k)
101   [ "${i}" == "7:k" ] && i="sysinit:k"   [ "${i}" == "7:k" ] && i="sysinit:k"
102   echo -e "\t\t[rc${i/:k/}.d -> K${RC_STOP}]"   echo -e "\t\t[rc${i/:k/}.d -> K${RC_STOP}]"
# Line 130  rc_service_add() { Line 109  rc_service_add() {
109   ;;   ;;
110   esac   esac
111   done   done
  #echo "."  
112  }  }
113    
114  rc_service_del(){  rc_service_del(){
115   RC_SERVICE=$1   RC_SERVICE=$1
116    
117   echo "Deleting ${RC_SERVICE} from all runlevels:"   echo "Deleting ${RC_SERVICE} from all runlevels:"
118   for i in 0 1 2 3 4 5 6 sysinit   for i in 0 1 2 3 4 5 6 sysinit
119   do   do
# Line 146  rc_service_del(){ Line 124  rc_service_del(){
124   echo -e "\t\t[rc${i}.d <- S${z}]"   echo -e "\t\t[rc${i}.d <- S${z}]"
125   rm /etc/rc.d/rc${i}.d/S${z}${RC_SERVICE}   rm /etc/rc.d/rc${i}.d/S${z}${RC_SERVICE}
126   fi   fi
127    
128   if [ -L "/etc/rc.d/rc${i}.d/K${z}${RC_SERVICE}" ]   if [ -L "/etc/rc.d/rc${i}.d/K${z}${RC_SERVICE}" ]
129   then   then
130   echo -e "\t\t[rc${i}.d <- K${z}]"   echo -e "\t\t[rc${i}.d <- K${z}]"
# Line 156  rc_service_del(){ Line 134  rc_service_del(){
134   done   done
135  }  }
136    
 rc_service_show_old() {  
  RC_SERVICE=$1  
   
  local ALL_RUNLEVELS  
   
  [ -z "${RC_SERVICE}" ] && RC_SERVICE=all  
   
  if [ "${RC_SERVICE}" != all ]  
  then  
  #read'em (single)  
  for i in $(seq 0 7)  
  do  
  if [ ${i} -eq 7 ]  
  then  
  level=sysinit  
  else  
  level=${i}  
  fi  
   
  for script in /etc/rc.d/rc${level}.d/*  
  do  
  x="$(basename ${script})"  
  if [ "${x/???/}" == "${RC_SERVICE}" ]  
  then  
  ALL_RUNLEVELS[${i}]=${x/${RC_SERVICE}/}  
  fi  
  done  
  done  
   
  #show them (single)  
  #echo "Currently configured Services:"  
  echo -n "${RC_SERVICE}: "  
  for i in $(seq 0 7)  
  do  
  if [ ${i} -eq 7 ]  
  then  
  level=sysinit  
  else  
  level=${i}  
  fi  
   
  if [ ! -z "${ALL_RUNLEVELS[${i}]}" ]  
  then  
  echo -n "[${level}:${ALL_RUNLEVELS[${i}]}] "  
  fi  
  done  
  echo  
  else  
  local MY_RC_SERVICE  
  local initscripts  
   
  #read'em (all)  
  echo "Currently configured Services:"  
  for initscript in ${RC_INIT_BASE}/*  
  do  
  MY_RC_SERVICE=$(basename ${initscript})  
  unset ALL_RUNLEVELS  
  unset level i x  
   
  for i in $(seq 0 7)  
  do  
  if [ ${i} -eq 7 ]  
  then  
  level=sysinit  
  else  
  level=${i}  
  fi  
   
  for script in /etc/rc.d/rc${level}.d/*  
  do  
  x=$(basename ${script})  
  if [ "${x/???/}" == "${MY_RC_SERVICE}" ]  
  then  
  ALL_RUNLEVELS[${i}]=${x/${MY_RC_SERVICE}/}  
  fi  
  done  
  done  
   
  #show them (all)  
  echo -n "${MY_RC_SERVICE}: "  
  for i in $(seq 0 7)  
  do  
  if [ ${i} -eq 7 ]  
  then  
  level=sysinit  
  else  
  level=${i}  
  fi  
   
  if [ ! -z "${ALL_RUNLEVELS[${i}]}" ]  
  then  
  echo -n "[${level}:${ALL_RUNLEVELS[${i}]}] "  
  fi  
  done  
  echo  
  done  
  fi  
 }  
   
137  rc_service_show() {  rc_service_show() {
138   RC_SERVICE=$1   RC_SERVICE=$1
139    
140   local ALL_RUNLEVELS   local ALL_RUNLEVELS
141    
142   #read'em (single)   # read'em (single)
143   for i in $(seq 0 7)   for i in $(seq 0 7)
144   do   do
145   if [ ${i} -eq 7 ]   if [ ${i} -eq 7 ]
# Line 279  rc_service_show() { Line 158  rc_service_show() {
158   fi   fi
159   done   done
160   done   done
161    
162   #show them (single)   #show them (single)
 # echo "Currently configured Services:"  
163   echo -n "${RC_SERVICE}: "   echo -n "${RC_SERVICE}: "
164   for i in $(seq 0 7)   for i in $(seq 0 7)
165   do   do
# Line 296  rc_service_show() { Line 174  rc_service_show() {
174  check_not_excluded(){  check_not_excluded(){
175   local SCRIPT   local SCRIPT
176   SCRIPT=$1   SCRIPT=$1
177    
178   for i in ${RC_EXCLUDE}   for i in ${RC_EXCLUDE}
179   do   do
180   if [ ${SCRIPT} == ${i} ]   if [ ${SCRIPT} == ${i} ]
# Line 304  check_not_excluded(){ Line 182  check_not_excluded(){
182   return 1   return 1
183   fi   fi
184   done   done
185    
186   return 0   return 0
187  }  }
188    
# Line 326  chg_initdefault() { Line 204  chg_initdefault() {
204   fi   fi
205    
206   current=$(cat /etc/inittab|grep initdefault)   current=$(cat /etc/inittab|grep initdefault)
  #echo "$current"  
207    
208   cp /etc/inittab /etc/inittab-orig   cp /etc/inittab /etc/inittab-orig
209   sed -e "s/${current}/id:${newinitdef}:initdefault:/g"   \   sed -e "s/${current}/id:${newinitdef}:initdefault:/g"   \
# Line 342  chg_initdefault() { Line 219  chg_initdefault() {
219   fi   fi
220  }  }
221    
   
222  usage() {  usage() {
223   echo "Magellan RC Configurator v${VERSION} -- Niels Rogalla (niro@magellan-linux.de)"   echo "Magellan RC Configurator v${VERSION} -- Niels Rogalla (niro@magellan-linux.de)"
224   echo -e "\nUsage: $(basename $0) [Option] [File] ..."   echo -e "\nUsage: $(basename $0) [Option] [File] ..."
# Line 361  case $1 in Line 237  case $1 in
237   rc_service_del $2   rc_service_del $2
238   ;;   ;;
239   show)   show)
240   #show all   # show all
241   if [ -z "$2" ]   if [ -z "$2" ]
242   then   then
243   echo "Currently configured Services:"   echo "Currently configured Services:"

Legend:
Removed from v.3  
changed lines
  Added in v.104