SHOW:
|
|
- or go back to the newest paste.
1 | #!/bin/bash | |
2 | ||
3 | # live fast! die young! | |
4 | ||
5 | set -e | |
6 | ||
7 | #chạy file bash dưới, nói chung thường để gán biến thôi | |
8 | source /etc/statusnet/setup.cfg | |
9 | ||
10 | # setup_status_network.sh mysite 'My Site' '1user' 'owner@example.com' 'Firsty McLastname' | |
11 | ||
12 | # cái này là gán các biến bằng đầu vào. $1 là arg1, $2..... $0 chính là tên file | |
13 | export nickname="$1" | |
14 | export sitename="$2" | |
15 | export tags="$3" | |
16 | export email="$4" | |
17 | export fullname="$5" | |
18 | export siteplan="$6" | |
19 | ||
20 | if [ "$siteplan" == '' ]; then | |
21 | siteplan='single-user' | |
22 | fi | |
23 | ||
24 | # Fixme: if this is changed later we need to update profile URLs | |
25 | # for the created user. | |
26 | #Cũng gán biến, ghép của 2 biến kia lại | |
27 | export server="$nickname.$WILDCARD" | |
28 | ||
29 | # End-user info | |
30 | export userpass=`$PWDGEN` | |
31 | export roles="administrator moderator owner" | |
32 | ||
33 | # DB info | |
34 | export password=`$PWDGEN` | |
35 | export database=$nickname$DBBASE | |
36 | export username=$nickname$USERBASE | |
37 | ||
38 | # Create the db | |
39 | ||
40 | mysqladmin -h $DBHOST -u $ADMIN --password=$ADMINPASS create $database | |
41 | ||
42 | for f in statusnet.sql innodb.sql sms_carrier.sql foreign_services.sql notice_source.sql; do | |
43 | mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $database < ../db/$f; | |
44 | done | |
45 | ||
46 | mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB << ENDOFCOMMANDS | |
47 | ||
48 | GRANT ALL ON $database.* TO '$username'@'localhost' IDENTIFIED BY '$password'; | |
49 | GRANT ALL ON $database.* TO '$username'@'%' IDENTIFIED BY '$password'; | |
50 | INSERT INTO status_network (nickname, dbhost, dbuser, dbpass, dbname, sitename, created) | |
51 | VALUES ('$nickname', '$DBHOSTNAME', '$username', '$password', '$database', '$sitename', now()); | |
52 | ||
53 | ENDOFCOMMANDS | |
54 | ||
55 | # Tạo directory dựa trên nickname, cho phép ghi file vào trong đấy | |
56 | for top in $AVATARBASE $FILEBASE $BACKGROUNDBASE; do | |
57 | mkdir $top/$nickname | |
58 | chmod a+w $top/$nickname | |
59 | done | |
60 | ||
61 | php $PHPBASE/scripts/checkschema.php -s"$server" | |
62 | ||
63 | php $PHPBASE/scripts/settag.php -s"$server" "$nickname" "$tags" | |
64 | ||
65 | php $PHPBASE/scripts/registeruser.php \ | |
66 | -s"$server" \ | |
67 | -n"$nickname" \ | |
68 | -f"$fullname" \ | |
69 | -w"$userpass" \ | |
70 | -e"$email" | |
71 | ||
72 | for role in $roles | |
73 | do | |
74 | php $PHPBASE/scripts/userrole.php \ | |
75 | -s"$server" \ | |
76 | -n"$nickname" \ | |
77 | -r"$role" | |
78 | done | |
79 | ||
80 | if [ -f "$MAILTEMPLATE" ] | |
81 | then | |
82 | # fixme how safe is this? are sitenames sanitized? | |
83 | # Cái này đóan là lấy biến ngoài bash nhét vào php để làm thành cái mail. | |
84 | cat $MAILTEMPLATE | \ | |
85 | sed "s/\$nickname/$nickname/" | \ | |
86 | sed "s/\$sitename/$sitename/" | \ | |
87 | sed "s/\$userpass/$userpass/" | \ | |
88 | sed "s/\$siteplan/$siteplan/" | \ | |
89 | php $PHPBASE/scripts/sendemail.php \ | |
90 | -s"$server" \ | |
91 | -n"$nickname" \ | |
92 | --subject="$MAILSUBJECT" | |
93 | else | |
94 | echo "No mail template, not sending email." | |
95 | fi | |
96 | ||
97 | if [ -f "$POSTINSTALL" ] | |
98 | then | |
99 | echo "Running $POSTINSTALL ..." | |
100 | source "$POSTINSTALL" | |
101 | fi |