]> andersk Git - moira.git/blobdiff - gen/nfs.sh
Remove `delete_user_by_uid' since it's never been used in any logs we have,
[moira.git] / gen / nfs.sh
index f174f30400fa065179125fc4cfc7953e51123f2a..ed3ade27997d27cbdaa2bf0e70afa969cb997d4c 100644 (file)
@@ -1,68 +1,72 @@
 #!/bin/csh -f
 # This script performs nfs updates on servers.
+#
+# $Header$
 
 # The following exit codes are defined and MUST BE CONSISTENT with the
-# SMS error codes the library uses:
-set SMS_NOCRED 47836470
-set SMS_MKCRED 47836474
-set SMS_TARERR 47836476
+# MR error codes the library uses:
+set MR_NOCRED = 47836470
+set MR_MKCRED = 47836474
+set MR_TARERR = 47836476
 
-set path=(/etc /bin /usr/bin /usr/etc)
+set path=(/etc /bin /usr/bin /usr/etc /usr/athena/etc)
+set nonomatch
 
 # The file containg the information for the update
-set TARFILE=/tmp/nfs.out
+set TARFILE=/var/tmp/nfs.out
 # The directory into which we will empty the tarfile
-set SRC_DIR=/tmp/nfs.dir
-
-# Create a frash source directory
-rm -f $SRC_DIR
-mkdir $SRC_DIR
-chmod 755 $SRC_DIR
+set SRC_DIR=/var/tmp/nfs.dir
 
 # Alert if the tarfile does not exist
 if (! -r $TARFILE) then
-   exit $SMS_TARERR
+   exit $MR_TARERR
 endif
 
-# Note that since SMS is going to be exported, assuming .MIT.EDU is 
+# Create a fresh source directory
+rm -rf $SRC_DIR
+mkdir $SRC_DIR
+chmod 755 $SRC_DIR
+
+# Note that since MR is going to be exported, assuming .MIT.EDU is 
 # incorrect.  For now however, it is probably not worth the effort
 # to canonicalize the hostname, especially with the upcoming update
 # protocol redesign
-set uchost=`/bin/hostname | tr a-z A-Z`.MIT.EDU
+set uchost=`hostname | tr '[a-z]' '[A-Z]'`.MIT.EDU
 
 cd $SRC_DIR
 
-# Only files starting with $uchost, install_, and list- are needed.
-# The files starting with list- are needed because the credentials
-# files are hard links to them.  Tar will fail if they are not extracted.
-foreach file (`/bin/tar tf $TARFILE | awk '{print $1}'`)
-   if (($file =~ ./${uchost}*) || \
-       ($file =~ ./install_*) || \
-       ($file =~ ./list-*)) then
-      tar xf $TARFILE $file
-      if ($status) exit $SMS_TARERR
-   endif
-end
+# Just extract everything since some of what we need exists as
+# hardlinks and tar doesn't deal well with extracting them in isolation.
+tar xf $TARFILE
+if ($status) exit $MR_TARERR
 
 foreach type (dirs quotas)
    echo "Installing ${type}:"
    foreach i ( ${uchost}*.${type} )
-      # Convert the from the filename HOST.@dev@device.type to /dev/device
-      set dev=`echo $i |  sed 's;.${type};;' | sed 's;${uchost}.;;' | \
-          sed 's;@;/;g'`
-      echo ${uchost}:$dev
-      ./install_${type} $dev < $i
-      if ($status) exit $$status
+     if (-e $i) then
+       # Convert the from the filename HOST.@dev@device.type to /dev/device
+       set dev=`echo $i |  sed "s,.${type},," | sed "s,${uchost}.,," | sed "s,@,/,g"`
+       echo ${uchost}:$dev
+       ./install_${type} $dev < $i
+       if ($status) exit $status
+       if ($type == quotas) ./zero_quotas $dev < $i
+       if ($status) exit $status
+       # save the files used here for later debugging
+       mv $i /var/tmp
+     endif
    end
 end
 
 # build new credentials files.
 rm -f /usr/etc/credentials.new
 cp ${uchost}.cred /usr/etc/credentials.new
-if ($status) exit $SMS_SMS_NOCRED
+if ($status) exit $MR_NOCRED
 
-/usr/etc/mkcred /usr/etc/credentials.new
-if ($status) exit $SMS_MKCRED
+# After this point, if /tmp gets cleared out by reactivate (which
+# happens on a combined server/workstation) we don't care.
+
+mkcred /usr/etc/credentials.new
+if ($status) exit $MR_MKCRED
 
 # Try to install the files
 foreach e ( "" .dir .pag)
@@ -71,18 +75,17 @@ end
 
 # If any of them didn't get installed, fail
 foreach e ( "" .dir .pag)
-   if (! -e /usr/etc/credentials$e) exit $SMS_NOCRED
+   if (! -e /usr/etc/credentials$e) exit $MR_NOCRED
 end
 
+
+
 # cleanup
-rm -f $TARFILE
-cd $SRC_DIR/..
-rm -rf $SRC_DIR
-rm $0
+if ( -f $TARFILE ) rm -f $TARFILE
+if ( -d $SRC_DIR ) then
+  cd $SRC_DIR/..
+  rm -rf $SRC_DIR
+endif
+if ( -f $0 ) rm -r $0
 
 exit 0
-
-#
-#      $Source$
-#      $Header$
-#
This page took 0.039297 seconds and 4 git commands to generate.