use CloudStore::API
[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
17 perl -Ilib -MCloudStore::API -e 'print "u" . CloudStore::API->new("s1")->create_user(@ARGV),$/' $email $password $quota
18
19 exit 0
20
21 if passwd=`grep ":$email:" /var/lib/extrausers/passwd` ; then
22         echo "## $passwd" 1>&2
23         uid=`echo $passwd | cut -d: -f3`
24 else
25         uid=`tail -1 /var/lib/extrausers/passwd | cut -d: -f3`
26         echo "## last uid: $uid" 1>&2
27         uid=`expr $uid + 1`
28         echo "u$uid:$password:$uid:$PORT:$email:$SLICE/$uid:/bin/false" \
29                 >> /var/lib/extrausers/passwd
30 fi
31
32 if [ ! -e $SLICE/$uid ] ; then
33         mkdir $SLICE/$uid
34         chown $uid:$PORT $SLICE/$uid
35         zfs set userquota@u$uid=$quota $ZSLICE
36 fi
37
38 secrets="$SLICE/$uid/.secrets"
39 grep "^u$uid:" $secrets 1>&2 || echo "u$uid:$password" >> $secrets
40 md5mail=`echo -n $email | md5sum | cut -d" " -f1`
41 md5passwd=`echo -n $password | md5sum | cut -d" " -f1`
42 grep "^$md5mail:" $secrets 1>&2 || echo "$md5mail:$md5passwd" >> $secrets
43
44 id u$uid 1>&2
45 zfs get userquota@u$uid $ZSLICE 1>&2
46 zfs get userused@u$uid $ZSLICE 1>&2
47 cat $secrets 1>&2
48
49 echo "u$uid"