]> git.pld-linux.org Git - packages/autofs.git/blobdiff - autofs.init
- minimal hack to make it works. autofs5 has totally different syntax.
[packages/autofs.git] / autofs.init
index fe7a06d4139968a78472edf6725487dcebb42018..076f40547776697be15ef91d90e58ccfe9366532 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
 
 #
@@ -50,14 +49,25 @@ if [ -f /etc/autofs/auto.master ]; then
        while read dir map options; do
                if [ ! -z "$dir" -a ! -z "$map" \
                   -a x`echo "$map" | cut -c1` != 'x-' ]; then
+                       maptype=`echo $map | cut -f1 -d:`
+                       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=`echo $map | cut -f2- -d:`
+                               if [ ! -z "$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
                fi
        done
@@ -67,7 +77,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 +93,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,46 +102,53 @@ if is_yes $USE_YP; then
 fi
 }
 
-RETVAL=o
-# 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
-               getmounts | sh 
+#              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
        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
        fi
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+       start
        ;;
-  restart|force-reload)
-       $0 stop
-       $0 start
-       exit $?
+  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|force-reload|status}"
        exit 3
This page took 0.06726 seconds and 4 git commands to generate.