--- etc/shared.old Fri Oct 15 02:05:52 2004 +++ etc/shared Mon Oct 25 01:58:43 2004 @@ -27,7 +27,7 @@ log () { if [ -n "$VERBOSE" ] ; then - echo "$*" ; eval $* + echo "$*" ; eval "$*" else # if command fails, print the command followed by its output RET=0 @@ -42,10 +42,6 @@ add_blkdev () { # usage: add_blkdev [device] - if [ -n "$LINK" ] ; then - if [ -L $LINK ] ; then rm $LINK ; fi - ln -s $1 $LINK || return 1 - fi if is_true $DO_FSTAB ; then echo "$1 $MOUNTPT ${FSTYPE:-auto} ${OPTS:-defaults} 0 0" >> /etc/fstab fi @@ -55,7 +51,14 @@ fi if is_true $DO_MOUNT ; then O=${OPTS:+-o $OPTS} ; FS=${FSTYPE:+-t $FSTYPE} - log mount $O $FS $1 $MOUNTPT || return 1 + if log mount "$O" "$FS" "$1" "$MOUNTPT"; then + if [ -n "$LINK" -a -n "$INVISLINK" ] ; then + mv "$INVISLINK" "$LINK" || return 1 + chmod 777 "$LINK" || return 1 + fi + else + return 1 + fi fi return 0 } @@ -72,7 +75,7 @@ . $0.opts [ -n "$VERBOSE" -a -n "$INFO" ] && echo "$INFO" fi - add_blkdev /dev/$DEVICE$PART || RET=1 + add_blkdev "/dev/$DEVICE$PART" || RET=1 done return $RET } @@ -83,13 +86,19 @@ test -b $1 || return 1 do_fuser -k -m $1 > /dev/null if mount | grep -q "$1 on" ; then - log umount $1 || return 1 + if log umount $1 ; then + if [ -L "$LINK" ] ; then + mv "$LINK" "INVISLINK" || return 1 + chmod 000 "INVISLINK" || return 1 + fi + else + return 1 + fi fi if is_true $DO_FSTAB ; then grep -v $1 /etc/fstab > /etc/fstab.N mv /etc/fstab.N /etc/fstab fi - if [ -L "$LINK" ] ; then rm $LINK ; fi } rm_parts ()