]> andersk Git - moira.git/blame - gen/install_dirs
output people enrolled in the campus namespace as well
[moira.git] / gen / install_dirs
CommitLineData
b8e4bdf8 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# SMS error codes the library uses:
6set SMS_PROTO = 47836477
7
8set path=(/etc /bin /usr/bin /usr/etc)
9
10# Find out what device we're working on
11set dev = $1
12
13set TMPSTOR = /tmp/tmpstor # Temporary area for user . files
14set USERTAR = /tmp/proto.tar # Tarfile for user . files
15
16# Give ourselves a fresh work area
17rm -rf $USERTAR
18rm -rf $TMPSTOR
19mkdir $TMPSTOR
de9119eb 20if ($status) exit $SMS_PROTO
b8e4bdf8 21
22# Make a tarfile containing the user prototype files for future use.
23(cd /usr/prototype_user;tar cf - .) | (cd $TMPSTOR; tar xpf -)
8a897245 24chmod -R 444 $TMPSTOR
25chmod 700 $TMPSTOR/Mail
b8e4bdf8 26(cd $TMPSTOR; tar cf $USERTAR .)
de9119eb 27if ($status) exit $SMS_PROTO
b8e4bdf8 28rm -rf $TMPSTOR
29
30# So that the new directories get the right protections.
31umask 66
32
33while (1)
34 # Do this until there are no more lines of input
35 set input = `echo $<`
36 if ($#input != 4) break
37
38 set dir = $input[1]
39 set uid = $input[2]
40 set gid = $input[3]
41 set type = $input[4]
42
43 # Don't do anything if the directory already exists
44 if (-d $dir) continue
45
46 while (1)
47 set tmpdir = $dir:h/_$dir:t
48 # Don't clobber this directory if it exists.
49 if (-d $tmpdir) then
50 continue
51 else
52 mkdir $tmpdir
53 # At some point it may be wise to check the status here and
54 # return a soft failure, but the current protocol doesn't
55 # support this
56 break
57 endif
58 end
59 if (! -d $tmpdir) continue
60 chown $uid.$gid $tmpdir
61
62 # At some point, we may wish to add a more elegant way of handling
63 # locker types. The current arrangement allows for easy adding of
64 # default actions here.
65 switch ($type)
66 case HOMEDIR:
67
68 # ***** Remove this when /etc/encorce_quota becomes obsolete!
b138e831 69 # Give this filesystem a 1200K quota
70 setquota $dev $uid 1200
b8e4bdf8 71 # *****
72
73 # Give user prototype files
74 # sms_untar is a setuid argv[1] tar xfp -
75 (cd $tmpdir; sms_untar $uid < $USERTAR)
76 if ($status) set WARN
77 breaksw
78 default:
79 breaksw
80 endsw
81
82 mv $tmpdir $dir
83 ### Soft failure when ready
84end
85
86# Cleanup
87rm -f $USERTAR
88exit 0
89
90#
91# $Source$
92# $Header$
93#
This page took 0.069573 seconds and 5 git commands to generate.