#!/bin/bash # $HeadURL$ $LastChangedRevision$ set -e PROGNAME=$(basename $0) # Load support functions . $(pcms-config PCMS_SHARE_PREFIX)/scripts/support.sh main() { # Defaults for options VERBOSELEVEL=2 OPT_FILE=/etc/fstab OPT_TOUCH=false # Process options while [ $# -ge 1 ]; do case $1 in --file=*) OPT_FILE=${1#*=} ;; --touch) OPT_TOUCH=true ;; --debug=*) VERBOSELEVEL=${1#*=} ;; -d) VERBOSELEVEL=$2; shift ;; -v|--verbose) VERBOSELEVEL=3 ;; --) shift; break ;; -*) error "main: $1: bad option" ;; *) break ;; esac shift done # Process arguments [ $# = 1 ] || usage eval set -- $(encode --decode "$1") [ $# -eq 6 ] || usage DEVICE="$1" MNTPNT="$2" TYPE="$3" MNTOPTS="$4" DUMP="$5" FSCK="$6" # Sanity checks and derivations FORMATTED_EXPORT="$(printf "%-50s %-24s %-10s %-40s %-1s %-1s" $DEVICE $MNTPNT $TYPE $MNTOPTS $DUMP $FSCK)" # Guts lineinfile --replace="^$DEVICE[ \\t]+.*" --text="$FORMATTED_EXPORT" --file=$OPT_FILE 2>/dev/null || lineinfile --after=EOF --text="$FORMATTED_EXPORT" --file=$OPT_FILE ! $OPT_TOUCH || touch $OPT_FILE [ $TYPE = swap ] || mkdir -p $MNTPNT } usage() { echo "Usage: $PROGNAME [ --file= ] @@@@@" >&2; exit 1; } main "$@"