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