Addded boinc_project_maker script, one single script of all instructions in ServerGuide.
[pkg-boinc/scripts.git] / server-examples / boinc_project_maker.sh
1 #!/bin/bash
2
3 # Set Variables.
4 # Password for write access to your prject database
5 pw=MYSQLPASSWORDFORBOINCUSER
6 # Name of the MySQL database
7 dbprojectname=projectname
8 #Address of host (via DNS or IP number) at which project server shall be reached
9 hosturl=http://1.2.3.4/
10
11 #Name of folder in which data shall be stored, also becomes part of project URL
12 fileprojectname=$dbprojectname
13 ## more human-compatible way to read the project name
14 niceprojectname="Test@Home"
15 # Location at which sources shall be kept
16 installroot=/var/tmp/boinc
17
18
19 # Check variables
20 if [ -z $dbprojectname ] || [ -z $pw ]; then
21 echo "Variables for mysql database not set"
22 exit -1
23 fi
24
25 # mysql database creation.
26 echo "Starting creation of database, enter Mysql root password when prompted."
27  
28 cat <<EOF | mysql -u root -p
29 DROP DATABASE IF EXISTS $dbprojectname;
30 CREATE DATABASE $dbprojectname;
31 CREATE USER 'boincadm'@'localhost' IDENTIFIED BY '$pw';
32 GRANT ALL PRIVILEGES ON $dbprojectname.* TO 'boincadm'@'localhost';
33 EOF
34
35
36 echo "Enter user password when prompted"
37 # create directory
38 [ -d $installroot ] || sudo mkdir $installroot
39
40 sudo PYTHONPATH="/usr/share/pyshared/Boinc/":$PYTHONPATH /usr/share/boinc-server/tools/make_project --url_base "$hosturl" --db_name "$dbprojectname" --db_user boincadm --delete_prev_inst --drop_db_first --db_passwd "$pw" --project_root "$installroot"/"$fileprojectname" --srcdir /usr/share/boinc-server/ "$fileprojectname" "$niceprojectname"
41
42
43 # Post creation steps
44
45 if [ -z "$installroot" -o -z "$fileprojectname" ]; then
46   echo "Not all variables are set for the configuration"
47   echo "Error, do not continue."
48   exit
49
50 elif [ ! -d "$installroot"/"$fileprojectname" ]; then
51   echo "The directory '$installroot/'$fileprojectname' is not existing" 
52   echo "Error, do not continue."
53   exit
54
55 else
56   cd "$installroot"/"$fileprojectname"
57   sudo chown root:boincadm  -R .
58   sudo chmod g+w -R .
59   sudo chmod 02770 -R upload html/cache html/inc html/languages html/languages/compiled html/user_profile
60   sudo cp ${fileprojectname}.httpd.conf  /etc/apache2/sites-available/
61   sudo a2ensite  ${fileprojectname}.httpd.conf 
62   sudo /etc/init.d/apache2 reload
63 fi
64
65 if [ -d html/inc -a -d cgi-bin ]; then
66   sudo chmod    o+x html/inc
67   sudo chmod -R o+r html/inc
68   sudo chmod    o+x html/languages/
69   sudo chmod    o+x html/languages/compiled
70 else
71   echo "You are not in your project directory"
72   exit -1
73 fi
74
75 exit 0
76