Revision 24319,
1.9 KB
checked in by broder, 15 years ago
(diff) |
New Moira snapshot from SVN.
|
Rev | Line | |
---|
[23095] | 1 | #!/bin/csh -f |
---|
| 2 | # This script installs new directories on NFS servers. |
---|
| 3 | |
---|
| 4 | # The following exit codes are defined and MUST BE CONSISTENT with the |
---|
| 5 | # error codes the library uses: |
---|
| 6 | set MR_PROTO = 47836477 |
---|
| 7 | |
---|
| 8 | set path=(/etc /bin /usr/bin /usr/etc) |
---|
| 9 | |
---|
| 10 | # Find out what device we're working on |
---|
| 11 | set dev = $1 |
---|
| 12 | |
---|
| 13 | set USERTAR = /tmp/nfs.dir/proto.tar # Tarfile for user . files |
---|
| 14 | |
---|
| 15 | # So that the new directories get the right protections. |
---|
| 16 | umask 66 |
---|
| 17 | |
---|
| 18 | while (1) |
---|
| 19 | # Do this until there are no more lines of input |
---|
| 20 | set input = `echo $<` |
---|
| 21 | if ($#input != 4) break |
---|
| 22 | |
---|
| 23 | set dir = $input[1] |
---|
| 24 | set uid = $input[2] |
---|
| 25 | set gid = $input[3] |
---|
| 26 | set type = $input[4] |
---|
| 27 | |
---|
| 28 | # Don't do anything if the directory already exists |
---|
| 29 | if (-d $dir) continue |
---|
| 30 | |
---|
| 31 | while (1) |
---|
| 32 | set tmpdir = $dir:h/_$dir:t |
---|
| 33 | # Don't clobber this directory if it exists. |
---|
| 34 | if (-d $tmpdir) then |
---|
| 35 | break; |
---|
| 36 | else |
---|
| 37 | mkdir $tmpdir |
---|
| 38 | # At some point it may be wise to check the status here and |
---|
| 39 | # return a soft failure, but the current protocol doesn't |
---|
| 40 | # support this |
---|
| 41 | break |
---|
| 42 | endif |
---|
| 43 | end |
---|
| 44 | if (! -d $tmpdir) continue |
---|
| 45 | chown $uid.$gid $tmpdir |
---|
| 46 | |
---|
| 47 | # At some point, we may wish to add a more elegant way of handling |
---|
| 48 | # locker types. The current arrangement allows for easy adding of |
---|
| 49 | # default actions here. |
---|
| 50 | switch ($type) |
---|
| 51 | case HOMEDIR: |
---|
| 52 | |
---|
| 53 | # ***** Remove this when /etc/encorce_quota becomes obsolete! |
---|
| 54 | # Give this filesystem a 1200K quota |
---|
| 55 | setquota $dev $uid 1200 |
---|
| 56 | # ***** |
---|
| 57 | |
---|
| 58 | # Give user prototype files |
---|
| 59 | (cd $tmpdir; tar xf $USERTAR) |
---|
| 60 | if ($status) set WARN |
---|
| 61 | chown $uid.$gid $tmpdir $tmpdir/.??* $tmpdir/* |
---|
| 62 | breaksw |
---|
| 63 | case COURSE: |
---|
| 64 | /bin/chmod 775 $tmpdir |
---|
| 65 | breaksw |
---|
| 66 | default: |
---|
| 67 | breaksw |
---|
| 68 | endsw |
---|
| 69 | |
---|
| 70 | mv $tmpdir $dir |
---|
| 71 | ### Soft failure when ready |
---|
| 72 | end |
---|
| 73 | |
---|
| 74 | exit 0 |
---|
| 75 | |
---|
| 76 | # |
---|
[24319] | 77 | # $HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/gen/install_dirs $ $Id: install_dirs 3956 2010-01-05 20:56:56Z zacheiss $ |
---|
[23095] | 78 | # |
---|
Note: See
TracBrowser
for help on using the repository browser.