Initial add of defaria.com
[clearscm.git] / defaria.com / Computers / code / adm / bin / add_email
1 #!/bin/bash
2 ################################################################################
3 #
4 # File:         add_email
5 # RCS:          $Header: add_email,v 1.2 98/05/13 09:42:40 defaria Exp $
6 # Description:  This script adds a new person to moa
7 # Author:       Andrew@DeFaria.com
8 # Created:      Tue Jun  3 11:08:01 PDT 1997
9 # Modified:     Fri Jan 14 10:12:04 PST 2000
10 #               Changed wording for eJL
11 # Language:     Korn Shell
12 #
13 # (c) Copyright 2001, Andrew@DeFaria.com, all rights reserved
14 #
15 ################################################################################
16 # Set me to command name
17 me=$(basename $0)
18
19 # Set adm_base
20 adm_base=${adm_base:-//sonscentral/Corporate/Software/adm}
21
22 # Set adm_fpath
23 adm_fpath=${adm_fpath:-$adm_base/functions}
24
25 # Source functions
26 . $adm_fpath/common
27 tmpprefix=/tmp/add_email
28 . $adm_fpath/tmpfiles
29
30 function usage {
31   print -u2 "Usage: $me -username <username> -fullname <fullname>"
32   print -u2 "\t-employeetype <employeetype> -employeenumber
33 <employeenumber>"
34   print -u2 "\t-manager <manager> -mailserver <mailserver>"
35   exit 1
36 } # usage
37
38 function email_postmaster {
39   notify="postmaster pdl-support"
40   mailx -s "Please setup email for $fullname" $notify < $message_file
41 } # email_postmaster
42
43 message_file=$tmp_prefix.msg.$$
44 username=
45 fullname=
46 employeetype=
47 employeenumber=
48 manager=
49 mailserver=
50
51 while [ $# -ge 1 ]; do
52   case "$1" in
53     -usage)
54       usage
55       ;;
56
57     -username)
58       if [ $# -le 1 ]; then
59         error "Username not specified!"
60         usage
61       fi
62       shift
63       username="$1"
64       ;;
65
66     -fullname)
67       if [ $# -le 1 ]; then
68         error "Full name not specified!"
69         usage
70       fi
71       shift
72       fullname="$1"
73       ;;
74
75     -employeetype)
76       if [ $# -le 1 ]; then
77         error "Employee type not specified!"
78         usage
79       fi
80       shift
81       employeetype="$1"
82
83       case "$employeetype" in
84         Employee|SEED|Contractor)
85           ;;
86         *)
87            error "Employeetype must be one of \"Employee\", \"SEED\" or \"Contractor\""
88            exit 1
89           ;;
90       esac
91       ;;
92
93     -employeenumber)
94       if [ $# -gt 1 ]; then
95         shift
96         employeenumber="$1"
97       fi
98       ;;
99
100     -manager)
101       if [ $# -le 1 ]; then
102         error "Manager name not specified!"
103         usage
104       fi
105       shift
106       manager="$1"
107       ;;
108
109     -mailserver)
110       if [ $# -le 1 ]; then
111         error "Mail server not specified!"
112         usage
113       fi
114       shift
115       mailserver="$1"
116       ;;
117
118     *)
119       error "Unknown parameter encounter: \"$1\""
120       usage
121       ;;
122   esac
123   shift
124 done
125
126 if [ "_$username"       = "_" -o \
127  "_$fullname"   = "_" -o \
128  "_$employeetype"       = "_" -o \
129  "_$manager"    = "_" -o \
130  "_$mailserver" = "_" ]; then
131   error "Missing parameter"
132   usage
133 fi
134
135 case "$employeetype" in
136   Contractor)
137     if [ "_$employeenumber" != "_" ]; then
138       error "Contractors should not have an HP Employee number"
139       exit 1
140     fi
141     ;;
142   *) # already verified that employeetype is correct
143     if [ "_$employeenumber" = "_" ]; then
144       error "Employee number is required for HP Employees and SEEDs"
145       exit 1
146     fi
147     ;;
148 esac
149
150 firstname=$(print $fullname | awk '{print $1}')
151
152 cat > $message_file <<!EOD
153
154 A new $employeetype, $fullname ($username), has recently joined the HP
155 Enterprize Java Lab (eJL). Please set up an email account for
156 $fullname. $firstname will be working for $manager and will receive
157 email on the machine named $mailserver.
158
159 !EOD
160
161 if [ ! "$employeetype" = "Contractor" ]; then
162   cat >> $message_file <<!EOD
163 $fullname's HP Employee number is $employeenumber.
164
165 !EOD
166
167 fi
168
169 cat >> $message_file <<!EOD
170 Please respond to this message when this task has been completed.
171
172 Thank you.
173 !EOD
174
175 email_postmaster
176
177 if [ $? -eq 0 ]; then
178   info "Request for email account for $fullname has been successfully sent"
179 else
180   error "Problems were encountered while sending request for email account
181 for $fullname"
182 fi