]> Pileus Git - mkinit/blob - src/mkinit
c2b4ec0d488e61ebf0881bbf6853940f7effe665
[mkinit] / src / mkinit
1 #!/bin/sh
2
3 # Copyright (C) 2009 Andy Spencer
4 # See ../COPYING for terms
5
6 echo
7 echo "mkinit -- starting"
8
9 function runamk {
10         /usr/lib/plan9/bin/mk \
11                 -f /etc/init.mk \
12                 -i -k "$@"
13 }
14
15 # Handle arguments
16 TEST=false
17 cmd=boot
18 case "$1" in
19 -t )
20         TEST=true
21         export P="true"
22         ;;
23 -n )
24         cmd=""
25         ;;
26 esac
27
28
29 # Main loop
30 echo "mkinit -- entering main loop"
31 while true; do
32         case "$cmd" in
33         boot )
34                 echo "mkinit -- booting"
35                 if runamk -a && ! $TEST; then
36                         # booted successuflly, redirect input
37                         echo "skipping redirect"
38                         #pipe=/lib/mkinit/cmd
39                         #[ -p pipe ] || mkfifo $pipe
40                         #exec 0< $pipe
41                 fi
42                 ;;
43         halt )
44                 echo "mkinit -- halting"
45                 runamk "halt"
46                 # exit
47                 ;;
48         restart )
49                 if [ "$args" ]; then
50                         echo "mkinit -- restarting $args"
51                         runamk "stop-$args"
52                         runamk "start-$args"
53                 fi
54                 ;;
55         start|stop|zap|status )
56                 if [ "$args" ]; then
57                         echo "mkinit -- ${cmd}ing $args"
58                         runamk "${cmd}-$args"
59                 fi
60                 ;;
61         mk )
62                 if [ "$args" ]; then
63                         echo "mkinit -- running mk cmd [$args]"
64                         runamk "$args"
65                 fi
66                 ;;
67         reload )
68                 exec /sbin/mkinit -n
69                 ;;
70         eval )
71                 $args
72                 ;;
73         ?* )
74                 echo "unknown command [$cmd $args]"
75                 ;;
76         esac
77         echo -n "mkinit> "
78         read cmd args
79 done