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' '[email protected]' '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 |