Magellan Linux

Diff of /tags/init-0_4_11/magellan-initscripts/sbin/rc-config

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

revision 223 by niro, Fri Sep 9 16:34:35 2005 UTC revision 355 by niro, Sat Mar 25 21:13:09 2006 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # $Header: /home/cvsd/magellan-cvs/magellan-src/magellan-initscripts/sbin/rc-config,v 1.4 2005-09-09 16:28:55 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/magellan-initscripts/sbin/rc-config,v 1.5 2006-03-25 21:13:09 niro Exp $
3    
4  RC_INIT_BASE=${MROOT}/etc/init.d  RC_INIT_BASE=${MROOT}/etc/init.d
5  RC_EXCLUDE="rc functions template splash-functions"  RC_EXCLUDE="rc functions template splash-functions"
6    
7  VERSION=0.3  VERSION=0.3
8    
9  get_run_levels(){  get_run_levels()
10    {
11   local SCRIPT   local SCRIPT
12   local ALL_LEVELS   local ALL_LEVELS
13    
# Line 19  get_run_levels(){ Line 20  get_run_levels(){
20  }  }
21    
22    
23  get_needs() {  get_needs()
24    {
25   local SCRIPT   local SCRIPT
26   local ALL_LEVELS   local ALL_LEVELS
27    
# Line 31  get_needs() { Line 33  get_needs() {
33   return 0   return 0
34  }  }
35    
36  get_before() {  get_before()
37    {
38   local SCRIPT   local SCRIPT
39   local ALL_LEVELS   local ALL_LEVELS
40    
# Line 43  get_before() { Line 46  get_before() {
46   return 0   return 0
47  }  }
48    
49  get_after() {  get_after()
50    {
51   local SCRIPT   local SCRIPT
52   local ALL_LEVELS   local ALL_LEVELS
53    
# Line 55  get_after() { Line 59  get_after() {
59   return 0   return 0
60  }  }
61    
62  get_start() {  get_start()
63    {
64   local SCRIPT   local SCRIPT
65   local ALL_LEVELS   local ALL_LEVELS
66    
# Line 67  get_start() { Line 72  get_start() {
72   return 0   return 0
73  }  }
74    
75  get_stop() {  get_stop()
76    {
77   local SCRIPT   local SCRIPT
78   local ALL_LEVELS   local ALL_LEVELS
79    
# Line 81  get_stop() { Line 87  get_stop() {
87    
88    
89    
90  rc_service_add() {  rc_service_add()
91    {
92   RC_SERVICE=$1   RC_SERVICE=$1
93   RC_START=$(get_start ${RC_SERVICE})   RC_START=$(get_start ${RC_SERVICE})
94   RC_STOP=$(get_stop ${RC_SERVICE})   RC_STOP=$(get_stop ${RC_SERVICE})
# Line 92  rc_service_add() { Line 99  rc_service_add() {
99   case ${i} in   case ${i} in
100   # start   # start
101   ?:s)   ?:s)
102   [ "${i}" == "7:s" ] && i="sysinit:s"   [[ ${i} = 7:s ]] && i="sysinit:s"
103   echo -e "\t\t[rc${i/:s/}.d -> S${RC_START}]"   echo -e "\t\t[rc${i/:s/}.d -> S${RC_START}]"
104   ln -snf ../init.d/${RC_SERVICE} \   ln -snf ../init.d/${RC_SERVICE} \
105   ${MROOT}/etc/rc.d/rc${i/:s/}.d/S${RC_START}${RC_SERVICE}   ${MROOT}/etc/rc.d/rc${i/:s/}.d/S${RC_START}${RC_SERVICE}
106   ;;   ;;
107   # stop   # stop
108   ?:k)   ?:k)
109   [ "${i}" == "7:k" ] && i="sysinit:k"   [[ ${i} = 7:k ]] && i="sysinit:k"
110   echo -e "\t\t[rc${i/:k/}.d -> K${RC_STOP}]"   echo -e "\t\t[rc${i/:k/}.d -> K${RC_STOP}]"
111   ln -snf ../init.d/${RC_SERVICE} \   ln -snf ../init.d/${RC_SERVICE} \
112   ${MROOT}/etc/rc.d/rc${i/:k/}.d/K${RC_STOP}${RC_SERVICE}   ${MROOT}/etc/rc.d/rc${i/:k/}.d/K${RC_STOP}${RC_SERVICE}
# Line 112  rc_service_add() { Line 119  rc_service_add() {
119   done   done
120  }  }
121    
122  rc_service_del(){  rc_service_del()
123    {
124   RC_SERVICE=$1   RC_SERVICE=$1
125    
126   echo "Deleting ${RC_SERVICE} from all runlevels:"   echo "Deleting ${RC_SERVICE} from all runlevels:"
# Line 135  rc_service_del(){ Line 143  rc_service_del(){
143   done   done
144  }  }
145    
146  rc_service_show() {  rc_service_show()
147    {
148   RC_SERVICE=$1   RC_SERVICE=$1
149    
150   local ALL_RUNLEVELS   local ALL_RUNLEVELS
# Line 143  rc_service_show() { Line 152  rc_service_show() {
152   # read'em (single)   # read'em (single)
153   for i in $(seq 0 7)   for i in $(seq 0 7)
154   do   do
155   if [ ${i} -eq 7 ]   level=${i}
156   then   [[ ${i} = 7 ]] && level=sysinit
  level=sysinit  
  else  
  level=${i}  
  fi  
157    
158   for script in ${MROOT}/etc/rc.d/rc${level}.d/*   for script in ${MROOT}/etc/rc.d/rc${level}.d/*
159   do   do
160   x="$(basename ${script})"   x="$(basename ${script})"
161   if [ "${x/???/}" == "${RC_SERVICE}" ]   [[ ${x/???/} = ${RC_SERVICE} ]] &&
  then  
162   ALL_RUNLEVELS[${i}]=${x/${RC_SERVICE}/}   ALL_RUNLEVELS[${i}]=${x/${RC_SERVICE}/}
  fi  
163   done   done
164   done   done
165    
# Line 164  rc_service_show() { Line 167  rc_service_show() {
167   echo -n "${RC_SERVICE}: "   echo -n "${RC_SERVICE}: "
168   for i in $(seq 0 7)   for i in $(seq 0 7)
169   do   do
170   if [ ! -z "${ALL_RUNLEVELS[${i}]}" ]   [[ ! -z ${ALL_RUNLEVELS[${i}]} ]] &&
  then  
171   echo -n "[${i}:${ALL_RUNLEVELS[${i}]}] "   echo -n "[${i}:${ALL_RUNLEVELS[${i}]}] "
  fi  
172   done   done
173   echo   echo
174  }  }
175    
176  check_not_excluded(){  check_not_excluded()
177    {
178   local SCRIPT   local SCRIPT
179   SCRIPT=$1   SCRIPT=$1
180    
181   for i in ${RC_EXCLUDE}   for i in ${RC_EXCLUDE}
182   do   do
183   if [ ${SCRIPT} == ${i} ]   [[ ${SCRIPT} = ${i} ]] && return 1
  then  
  return 1  
  fi  
184   done   done
185    
186   return 0   return 0
187  }  }
188    
189    
190  chg_initdefault() {  chg_initdefault()
191    {
192   local newinitdef   local newinitdef
193   declare -i newinitdef="$1"   declare -i newinitdef="$1"
194    
195   if [ -z "$newinitdef" ]   if [[ -z ${newinitdef} ]]
196   then   then
197   echo "You must give an initlevel."   echo "You must give an initlevel."
198   exit 1   exit 1
199   fi   fi
200    
201   if [ $newinitdef -le 0 -a $newinitdef -ge 6 ]   if [ ${newinitdef} -le 0 -a ${newinitdef} -ge 6 ]
202   then   then
203   echo "You can only choose initlevels between 1-5."   echo "You can only choose initlevels between 1-5."
204   exit 1   exit 1
205   fi   fi
206    
207   current=$(cat ${MROOT}/etc/inittab|grep initdefault)   current=$(cat ${MROOT}/etc/inittab | grep initdefault)
208    
209   cp ${MROOT}/etc/inittab ${MROOT}/etc/inittab-orig   cp ${MROOT}/etc/inittab ${MROOT}/etc/inittab-orig
210   sed -e "s/${current}/id:${newinitdef}:initdefault:/g"   \   sed -e "s/${current}/id:${newinitdef}:initdefault:/g"   \
211   ${MROOT}/etc/inittab-orig > /etc/inittab   ${MROOT}/etc/inittab-orig > ${MROOT}/etc/inittab
212   if [ "$?" == "0" ]   if [[ $? = 0 ]]
213   then   then
214   rm -f ${MROOT}/etc/inittab-orig   rm -f ${MROOT}/etc/inittab-orig
215   echo "Changed default initlevel to ${newinitdef} successfully."   echo "Changed default initlevel to ${newinitdef} successfully."
# Line 220  chg_initdefault() { Line 220  chg_initdefault() {
220   fi   fi
221  }  }
222    
223  usage() {  usage()
224    {
225   echo "Magellan RC Configurator v${VERSION} -- Niels Rogalla (niro@magellan-linux.de)"   echo "Magellan RC Configurator v${VERSION} -- Niels Rogalla (niro@magellan-linux.de)"
226   echo -e "\nUsage: $(basename $0) [Option] [File] ..."   echo -e "\nUsage: $(basename $0) [Option] [File] ..."
227   echo -e "     add         adds script to runlevel"   echo -e "     add         adds script to runlevel"
# Line 239  case $1 in Line 240  case $1 in
240   ;;   ;;
241   show)   show)
242   # show all   # show all
243   if [ -z "$2" ]   if [[ -z $2 ]]
244   then   then
245   echo "Currently configured Services:"   echo "Currently configured Services:"
246   for i in ${RC_INIT_BASE}/*   for i in ${RC_INIT_BASE}/*

Legend:
Removed from v.223  
changed lines
  Added in v.355