]> git.pld-linux.org Git - packages/binfmt-detector.git/blobdiff - binfmt-detector.init
- drop upstart support
[packages/binfmt-detector.git] / binfmt-detector.init
index b1e8ed5df1d61bc3efad658808199bba2444dddf..9eaffea284841b6cc3b2122d9d5848cb18b36008 100644 (file)
@@ -1,53 +1,70 @@
 #!/bin/sh
 # $Id$
 #
-# binfmt-detector:     Microsoft PE executable type detector. User can run
-#                      programs using Wine or Mono simply by clicking on them
-#                      or typing ./file.exe
+# binfmt-detector:     Microsoft PE executable type detector.
 #
-# chkconfig:   2345 95 10
+# chkconfig:   2345 95 05
 #
-# description: Microsoft PE executable type detector. User can run
-#              programs using Wine or Mono simply by clicking on them
+# description: Microsoft PE executable type detector. User can run \
+#              programs using Wine or Mono simply by clicking on them \
 #              or typing ./file.exe
 #
 
 # Source function library
 . /etc/rc.d/init.d/functions
 
-BINFMT_DIR='/proc/sys/fs/binfmt_misc'
+BINFMT_DIR=/proc/sys/fs/binfmt_misc
+
+[ -d $BINFMT_DIR ] || exit 0
 
 start() {
-       if [ ! -f /var/lock/subsys/binfmt-detector ]; then
-               # check if binfmt_misc is not already mounted
-               if ! /bin/mount | grep -q "${BINFMT_DIR} type binfmt_misc"; then
-                       /bin/mount none -t binfmt_misc ${BINFMT_DIR}
-               fi
-               msg_starting 'binfmt-detector'/proc/sys/fs/binfmt_misc
-               echo ':windows:M::MZ::/usr/bin/binfmt-detector.sh:' > ${BINFMT_DIR}/register
-               echo ':windowsPE:M::PE::/usr/bin/binfmt-detector.sh:' > ${BINFMT_DIR}/register
+       if [ -f /var/lock/subsys/binfmt-detector ]; then
+               msg_already_running "binfmt detector"
+               return
+       fi
+
+       # check if binfmt_misc is not already mounted
+       if ! grep -q ${BINFMT_DIR} /proc/mounts; then
+               /bin/mount none -t binfmt_misc ${BINFMT_DIR}
+       fi
+       msg_starting "binfmt detector"
+       if [ -e "$BINFMT_DIR/register" ]; then
+               echo ':windows:M::MZ::/usr/bin/binfmt-detector:' > ${BINFMT_DIR}/register
+               echo ':windowsPE:M::PE::/usr/bin/binfmt-detector:' > ${BINFMT_DIR}/register
                ok
                touch /var/lock/subsys/binfmt-detector
        else
-               msg_already_running 'binfmt-detector'
+               fail
        fi
 }
 
 stop() {
-       if [ -f /var/lock/subsys/binfmt-detector ]; then
-               msg_stopping 'binfmt-detector'
-               echo '-1' > ${BINFMT_DIR}/windows
-               echo '-1' > ${BINFMT_DIR}/windowsPE
-               rm -f /var/lock/subsys/binfmt-detector
-               ok
-       else
-               msg_not_running 'binfmt-detector'
+       if [ ! -f /var/lock/subsys/binfmt-detector ]; then
+               msg_not_running "binfmt detector"
+               return
        fi
+
+       msg_stopping "binfmt detector"
+       echo '-1' > ${BINFMT_DIR}/windows
+       echo '-1' > ${BINFMT_DIR}/windowsPE
+       rm -f /var/lock/subsys/binfmt-detector
+       ok
+}
+
+condrestart() {
+       if [ ! -f /var/lock/subsys/binfmt-detector ]; then
+               msg_not_running "binfmt-detector"
+               RETVAL=$1
+               return
+       fi
+
+       stop
+       start
 }
 
 RETVAL=0
 case "$1" in
-  start|reload|force-reload)
+  start|reload)
        start
        ;;
   stop)
@@ -57,10 +74,25 @@ case "$1" in
     stop
     start
        ;;
+  try-restart)
+       condrestart 0
+       ;;
+  force-reload)
+       condrestart 7
+       ;;
   status)
+       if [ ! -f /var/lock/subsys/binfmt-detector ]; then
+               msg_not_running "binfmt detector"
+               exit 1
+       fi
+       for fmt in windows windowsPE; do
+               printf "%s: %s; %s: %s\n" $fmt \
+                       $(grep -E '(disabled|enabled)' $BINFMT_DIR/$fmt) \
+                       $(grep -E 'interpreter' $BINFMT_DIR/$fmt)
+       done
        ;;
   *)
-       msg_usage "$0 {start|stop|restart|reload|force-reload|status}"
+       msg_usage "$0 {start|stop|restart|reload|try-restart|force-reload|status}"
        exit 3
 esac
 
This page took 0.112771 seconds and 4 git commands to generate.