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