]> git.pld-linux.org Git - packages/autofs.git/blobdiff - autofs.init
- updated to 5.1.0
[packages/autofs.git] / autofs.init
index 943e3fb6bb6f5874661323bca5739d2b7bb24e2a..8416ac46c42161f95b2621f82eb7c848739ff039 100644 (file)
@@ -5,8 +5,8 @@
 #
 # chkconfig:   2345 72 08
 #
-# description: Script for automount using a Sun-style "master map".
-#              We first look for a local /etc/autofs/auto.master, then a YP
+# description: Script for automount using a Sun-style "master map". \
+#              We first look for a local /etc/autofs/auto.master, then a YP \
 #              map with that name
 #
 # processname: autofs
 
 # Check that networking is up.
 if is_yes "${NETWORKING}"; then
-       if [ ! -f /var/lock/subsys/network ]; then
-               # nls "ERROR: Networking is down. %s can't be run." <service>
+       if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
                msg_network_down automounter
                exit 1
        fi
 else
        exit 0
 fi
-                       
+
 DAEMON=/usr/sbin/automount
 
 #
@@ -48,16 +47,30 @@ getmounts()
 if [ -f /etc/autofs/auto.master ]; then
        cat /etc/autofs/auto.master | sed -e '/^#/d' -e '/^$/d'| (
        while read dir map options; do
-               if [ ! -z "$dir" -a ! -z "$map" \
-                  -a x`echo "$map" | cut -c1` != 'x-' ]; then
-                       map=`echo "/etc/autofs/$map" | sed -e 's:^/etc\/autofs//:/:'`
+               if [ ! -z "$dir" -a ! -z "$map" -a x`echo "$map" | cut -c1` != 'x-' ]; then
+                   :
+               else
+                   continue
+               fi
+
+               maptype=${map%%:*}
+               if [ "$maptype" = "$map" ]; then
+                       map=`echo "/etc/autofs/$map" | sed -e 's:^/etc/autofs//:/:'`
                        options=`echo "$options" | sed -e 's/\(^\|[ \t]\)-/\1/g'`
                        if [ -x $map ]; then
-                               echo "$DAEMON --timeout $TIMEOUT $dir program $map $options"
+                               echo "$DAEMON --timeout ${TIMEOUT} ${OPTIONS} $dir program $map $options"
                        elif [ -f $map ]; then
-                               echo "$DAEMON --timeout $TIMEOUT $dir file $map $options"
+                               echo "$DAEMON --timeout ${TIMEOUT} ${OPTIONS} $dir file $map $options"
                        else
-                               echo "$DAEMON --timeout $TIMEOUT $dir `basename $map` $options"
+                               echo "$DAEMON --timeout ${TIMEOUT} ${OPTIONS} $dir `basename $map` $options"
+                       fi
+               else
+                       map=${map#*/}
+                       if [ "$map" ]; then
+                               if [ "$maptype" = "file" ]; then
+                                       map=`echo "/etc/autofs/$map" | sed -e 's:^/etc/autofs//:/:'`
+                               fi
+                               echo "$DAEMON --timeout $TIMEOUT ${OPTIONS} $dir $maptype $map $options"
                        fi
                fi
        done
@@ -67,7 +80,7 @@ fi
 #
 # Check for YellowPage maps to be loaded
 #
-if is_yes $USE_YP; then 
+if is_yes $USE_YP; then
        if [ -e /usr/bin/ypcat ] && \
           [ `ypcat -k auto.master 2>/dev/null | wc -l` -gt 0 ]; then
                ypcat -k auto.master | (
@@ -83,7 +96,7 @@ if is_yes $USE_YP; then
                                options=`echo "$options" | sed -e '
                                  s/--*t\(imeout\)*[ \t]*[0-9][0-9]*//g
                                  s/\(^\|[ \t]\)-/\1/g'`
-                               echo "$DAEMON --timeout $TIMEOUT $mountoptions \
+                               echo "$DAEMON --timeout $TIMEOUT ${OPTIONS} $mountoptions \
                                  $dir yp $map $options"
                        fi
                done
@@ -92,54 +105,56 @@ if is_yes $USE_YP; then
 fi
 }
 
-#
-#      See how we were called.
-#
-case "$1" in
-  start)
+start() {
        # Check if the service is already running?
        if [ ! -f /var/lock/subsys/autofs ]; then
                msg_starting automounter
                busy
-               if getmounts | sh; then
-                       deltext;ok
-               else
-                       deltext;ok
-               fi
+#              getmounts | sh
+               $DAEMON --timeout $TIMEOUT /etc/autofs/auto.master
                RETVAL=$?
+               [ $RETVAL -eq 0 ] && ok || fail
                [ $RETVAL -eq 0 ] && touch /var/lock/subsys/autofs
        else
                msg_already_running automounter
-               exit 1
        fi
-       ;;
-  stop)
+}
+
+stop() {
        if [ -f /var/lock/subsys/autofs ]; then
                msg_stopping automounter
-               automount -TERM
                killproc automount
                rm -f /var/lock/subsys/autofs >/dev/null 2>&1
        else
                msg_not_running automounter
-               exit 1
        fi
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+       start
        ;;
-  restart|reload)
-       $0 stop
-       $0 start
+  stop)
+       stop
        ;;
-  status)
-       nls "Configured Mount Points:"
-       getmounts
-       echo ""
-       nls "Active Mount Points:"
-       ps axw|grep "[0-9]:[0-9][0-9] /usr/sbin/automount " | (
-               while read pid tt stat time command; do echo $command; done
-       )
+  restart|force-reload)
+       stop
+       start
        ;;
+#  status)
+#      nls "Configured Mount Points:"
+#      getmounts
+#      echo ""
+#      nls "Active Mount Points:"
+#      ps axw|grep "[0-9]:[0-9][0-9] /usr/sbin/automount " | (
+#              while read pid tt stat time command; do echo $command; done
+#      )
+#      ;;
   *)
-       msg_usage "$0 {start|stop|restart|reload|status}"
-       exit 1
+       msg_usage "$0 {start|stop|restart|force-reload|status}"
+       exit 3
 esac
 
 exit $RETVAL
This page took 0.039587 seconds and 4 git commands to generate.