turn into server
[cloudstore.git] / create-user.sh
1 #!/bin/sh -e
2
3 . ./env.sh
4
5 email=$1
6 password=$2
7 quota=$3
8
9 if [ -z "$email" -o -z "$password" ]; then
10         echo "Usage: $0 email password [quota]"
11         exit 1
12 fi
13
14 test -z "$quota" && quota=200k
15
16 if passwd=`grep ":$email:" /var/lib/extrausers/passwd` ; then
17         echo "## $passwd" 1>&2
18         uid=`echo $passwd | cut -d: -f3`
19 else
20         uid=`tail -1 /var/lib/extrausers/passwd | cut -d: -f3`
21         echo "## last uid: $uid" 1>&2
22         uid=`expr $uid + 1`
23         echo "u$uid:$password:$uid:$PORT:$email:$SLICE/$uid:/bin/false" \
24                 >> /var/lib/extrausers/passwd
25 fi
26
27 if [ ! -e $SLICE/$uid ] ; then
28         mkdir $SLICE/$uid
29         chown $uid:$PORT $SLICE/$uid
30         zfs set userquota@u$uid=$quota $ZSLICE
31 fi
32
33 secrets="$SLICE/$uid/.secrets"
34 grep "^u$uid:" $secrets 1>&2 || echo "u$uid:$password" >> $secrets
35 md5mail=`echo -n $email | md5sum | cut -d" " -f1`
36 md5passwd=`echo -n $password | md5sum | cut -d" " -f1`
37 grep "^$md5mail:" $secrets 1>&2 || echo "$md5mail:$md5passwd" >> $secrets
38
39 id u$uid 1>&2
40 zfs get userquota@u$uid $ZSLICE 1>&2
41 zfs get userused@u$uid $ZSLICE 1>&2
42 cat $secrets 1>&2
43
44 echo "u$uid"