Home | History | Annotate | Download | only in install-utils
      1 #!/bin/sh
      2 #  Make /etc/fstab standard compliant.
      3 #  M.Weller (eowmob (at] exp-math.uni-essen.de) 13.11.1994.
      4 #  This script is public domain. Still if only slightly
      5 #  modified a credit to me might be nice.
      6 
      7 ROOT_PASS=1		# Pass for root file system
      8 NON_ROOT_PASS=2		# Pass for non root file systems
      9 DEF_FLAGS="defaults"	# Default filesysflags
     10 DEF_DUMP=0		# Default dumpfreq.
     11 	
     12 while read LINE
     13 do
     14   set -- $LINE
     15   if [ $# != 0 ]
     16   then
     17     case $1 in
     18       \#* | !* )
     19 	echo "$LINE"
     20 	#  Actually there are no comments allowed in /etc/fstab
     21 	echo "Warning: comment in /etc/fstab detected." >&2
     22 	echo "Please remove it by hand." >&2
     23 	;;
     24       * )
     25 	if [ $# -gt 6 ] || [ $# -lt 3 ]
     26 	then
     27 	  echo "Don't have a clue about \"$LINE\"." >&2
     28 	  echo "$LINE"
     29 	else
     30 	  case $2 in
     31 	    / )
     32 	      PASS=$ROOT_PASS
     33 	      ;;
     34 	    none )
     35 	      PASS=0
     36 	      ;;
     37 	    * )
     38 	      PASS=$NON_ROOT_PASS
     39 	      ;;
     40 	  esac
     41 	  DUMP=$DEF_DUMP
     42 	  case $3 in
     43 	    ignore | iso9660 | msdos | hpfs | sysv | \
     44 		  xenix | coherent | nfs | proc | sw | swap )
     45 	      DUMP=0;
     46 	      PASS=0;
     47 	      ;;
     48 	  esac
     49 	  case $# in
     50 	    3 )
     51 	      echo "$LINE	$DEF_FLAGS	$DUMP	$PASS"
     52 	      ;;
     53 	    4 )
     54 	      echo "$LINE	$DUMP	$PASS"
     55 	      ;;
     56 	    5 )
     57 	      echo "$LINE	$PASS"
     58 	      ;;
     59 	    6)
     60 	      echo "$LINE"
     61 	      ;;
     62 	  esac
     63 	fi
     64 	;;
     65     esac
     66   else
     67     echo "Warning: One empty line removed." >&2
     68   fi
     69 done </etc/fstab >/tmp/newfstab.$$
     70 mv -f /etc/fstab /etc/fstab.bak
     71 mv -f /tmp/newfstab.$$ /etc/fstab
     72 if [ $? != 0 ]
     73 then
     74   echo "Installation of patched /etc/fstab failed."
     75   echo "It would have been:"
     76   cat /tmp/newfstab.$$
     77   rm -f /tmp/newfstab.$$
     78 fi
     79