Magellan Linux

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

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