forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			97 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # live fast! die young!
 | |
| 
 | |
| set -e
 | |
| 
 | |
| source /etc/statusnet/setup.cfg
 | |
| 
 | |
| # setup_status_network.sh mysite 'My Site' '1user' 'owner@example.com' 'Firsty McLastname'
 | |
| 
 | |
| export nickname="$1"
 | |
| export sitename="$2"
 | |
| export tags="$3"
 | |
| export email="$4"
 | |
| export fullname="$5"
 | |
| export siteplan="$6"
 | |
| 
 | |
| if [ "$siteplan" == '' ]; then
 | |
|     siteplan='single-user'
 | |
| fi
 | |
| 
 | |
| # Fixme: if this is changed later we need to update profile URLs
 | |
| # for the created user.
 | |
| export server="$nickname.$WILDCARD"
 | |
| 
 | |
| # End-user info
 | |
| export userpass=`$PWDGEN`
 | |
| export roles="administrator moderator owner"
 | |
| 
 | |
| # DB info
 | |
| export password=`$PWDGEN`
 | |
| export database=$nickname$DBBASE
 | |
| export username=$nickname$USERBASE
 | |
| 
 | |
| # Create the db
 | |
| 
 | |
| mysqladmin -h $DBHOST -u $ADMIN --password=$ADMINPASS create $database
 | |
| 
 | |
| for f in statusnet.sql innodb.sql sms_carrier.sql foreign_services.sql notice_source.sql; do
 | |
|     mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $database < ../db/$f;
 | |
| done
 | |
| 
 | |
| mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB << ENDOFCOMMANDS
 | |
| 
 | |
| GRANT ALL ON $database.* TO '$username'@'localhost' IDENTIFIED BY '$password';
 | |
| GRANT ALL ON $database.* TO '$username'@'%' IDENTIFIED BY '$password';
 | |
| INSERT INTO status_network (nickname, dbhost, dbuser, dbpass, dbname, sitename, created)
 | |
| VALUES ('$nickname', '$DBHOSTNAME', '$username', '$password', '$database', '$sitename', now());
 | |
| 
 | |
| ENDOFCOMMANDS
 | |
| 
 | |
| for top in $AVATARBASE $FILEBASE $BACKGROUNDBASE; do
 | |
|     mkdir $top/$nickname
 | |
|     chmod a+w $top/$nickname
 | |
| done
 | |
| 
 | |
| php $PHPBASE/scripts/checkschema.php -s"$server"
 | |
| 
 | |
| php $PHPBASE/scripts/settag.php -s"$server" "$nickname" "$tags"
 | |
| 
 | |
| php $PHPBASE/scripts/registeruser.php \
 | |
|   -s"$server" \
 | |
|   -n"$nickname" \
 | |
|   -f"$fullname" \
 | |
|   -w"$userpass" \
 | |
|   -e"$email"
 | |
| 
 | |
| for role in $roles
 | |
| do
 | |
|   php $PHPBASE/scripts/userrole.php \
 | |
|     -s"$server" \
 | |
|     -n"$nickname" \
 | |
|     -r"$role"
 | |
| done
 | |
| 
 | |
| if [ -f "$MAILTEMPLATE" ]
 | |
| then
 | |
|     # fixme how safe is this? are sitenames sanitized?
 | |
|     cat $MAILTEMPLATE | \
 | |
|       sed "s/\$nickname/$nickname/" | \
 | |
|       sed "s/\$sitename/$sitename/" | \
 | |
|       sed "s/\$userpass/$userpass/" | \
 | |
|       sed "s/\$siteplan/$siteplan/" | \
 | |
|       php $PHPBASE/scripts/sendemail.php \
 | |
|         -s"$server" \
 | |
|         -n"$nickname" \
 | |
|         --subject="$MAILSUBJECT"
 | |
| else
 | |
|     echo "No mail template, not sending email."
 | |
| fi
 | |
| 
 | |
| if [ -f "$POSTINSTALL" ]
 | |
| then
 | |
|     echo "Running $POSTINSTALL ..."
 | |
|     source "$POSTINSTALL"
 | |
| fi
 |