Description:
Update Ruby version to 2.2.0
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r202:f1e28e7f872c - - 1 file changed: 5 inserted, 4 deleted

@@ -1,121 +1,122
1 #!/bin/sh
1 #!/bin/sh
2
2
3 echo "This script will install and configure Cafe grader."
3 echo "This script will install and configure Cafe grader."
4
4
5 - echo "This will install Ruby 2.1.2 under rvm"
5 + $RUBY_VERSION="2.2.0"
6 + echo "This will install Ruby $RUBY_VERSION under RVM"
6
7
7 echo "Installing required apts"
8 echo "Installing required apts"
8
9
9 sudo apt-get update
10 sudo apt-get update
10 sudo apt-get install mysql-server mysql-client \
11 sudo apt-get install mysql-server mysql-client \
11 g++ gcc apache2 libmysqlclient15-dev build-essential \
12 g++ gcc apache2 libmysqlclient15-dev build-essential \
12 git-core openssl libreadline6 libreadline6-dev \
13 git-core openssl libreadline6 libreadline6-dev \
13 zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev \
14 zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev \
14 sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev \
15 sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev \
15 ncurses-dev automake libtool bison subversion \
16 ncurses-dev automake libtool bison subversion \
16 pkg-config curl nodejs unzip
17 pkg-config curl nodejs unzip
17
18
18 echo "Installing RVM"
19 echo "Installing RVM"
19 curl -k -L https://get.rvm.io | bash -s stable
20 curl -k -L https://get.rvm.io | bash -s stable
20 ~/.rvm/scripts/rvm
21 ~/.rvm/scripts/rvm
21
22
22 - echo "Installing Ruby 2.1.2 in RVM"
23 + echo "Installing Ruby $RUBY_VERSION in RVM"
23
24
24 - rvm install 2.1.2
25 + rvm install $RUBY_VERSION
25 - rvm use 2.1.2
26 + rvm use $RUBY_VERSION
26
27
27 echo "Fetching Cafe Grader from Git repositories"
28 echo "Fetching Cafe Grader from Git repositories"
28
29
29 echo "Fetching web interface"
30 echo "Fetching web interface"
30
31
31 mkdir cafe_grader
32 mkdir cafe_grader
32 cd cafe_grader
33 cd cafe_grader
33 git clone -q git://github.com/jittat/cafe-grader-web.git web
34 git clone -q git://github.com/jittat/cafe-grader-web.git web
34
35
35 echo "Configuring rails app"
36 echo "Configuring rails app"
36
37
37 cp web/config/application.rb.SAMPLE web/config/application.rb
38 cp web/config/application.rb.SAMPLE web/config/application.rb
38 cp web/config/initializers/cafe_grader_config.rb.SAMPLE web/config/initializers/cafe_grader_config.rb
39 cp web/config/initializers/cafe_grader_config.rb.SAMPLE web/config/initializers/cafe_grader_config.rb
39
40
40 #replace UTC in application.rb with the system timezone
41 #replace UTC in application.rb with the system timezone
41 timezone='UTC'
42 timezone='UTC'
42 if [ -f '/etc/timezone' ]; then
43 if [ -f '/etc/timezone' ]; then
43 timezone=\"`cat /etc/timezone`\"
44 timezone=\"`cat /etc/timezone`\"
44 else
45 else
45 if [ -f '/etc/sysconfig/clock' ]; then
46 if [ -f '/etc/sysconfig/clock' ]; then
46 timezone=`grep -e '^TIMEZONE' /etc/sysconfig/clock | grep -o -e '\".*\"'`
47 timezone=`grep -e '^TIMEZONE' /etc/sysconfig/clock | grep -o -e '\".*\"'`
47 fi
48 fi
48 fi
49 fi
49 replace="s!'UTC'!$timezone!g"
50 replace="s!'UTC'!$timezone!g"
50 sed -i $replace web/config/application.rb
51 sed -i $replace web/config/application.rb
51
52
52 echo "At this point we will need MySQL user and database."
53 echo "At this point we will need MySQL user and database."
53 echo "Have you created MySQL user and database for Cafe grader? (Y/N) "
54 echo "Have you created MySQL user and database for Cafe grader? (Y/N) "
54 read ch
55 read ch
55
56
56 if [ "$ch" = "n" -o "$ch" = "N" ]
57 if [ "$ch" = "n" -o "$ch" = "N" ]
57 then
58 then
58 echo "Please open another terminal and create the user and database for Cafe grader."
59 echo "Please open another terminal and create the user and database for Cafe grader."
59 echo "Don't forget to grant access to that database for the user."
60 echo "Don't forget to grant access to that database for the user."
60 echo "Please have username, password, and database name ready before continue."
61 echo "Please have username, password, and database name ready before continue."
61 echo
62 echo
62 echo "The following are instructions:"
63 echo "The following are instructions:"
63 echo "1. Run mysql:"
64 echo "1. Run mysql:"
64 echo
65 echo
65 echo " mysql -u root -p"
66 echo " mysql -u root -p"
66 echo
67 echo
67 echo " if you have just installed mysql, the root password is the one that you have just entered"
68 echo " if you have just installed mysql, the root password is the one that you have just entered"
68 echo "2. Create a new database, a new user, and grant access to grader database:"
69 echo "2. Create a new database, a new user, and grant access to grader database:"
69 echo
70 echo
70 echo " create user 'USERNAME'@'localhost' identified by 'PASSWORD';"
71 echo " create user 'USERNAME'@'localhost' identified by 'PASSWORD';"
71 echo " create database \`DATABASENEME\`;"
72 echo " create database \`DATABASENEME\`;"
72 echo " grant all on \`DATABASENAME\`.* to 'USERNAME'@'localhost';"
73 echo " grant all on \`DATABASENAME\`.* to 'USERNAME'@'localhost';"
73 echo
74 echo
74 echo " Replace USERNAME, PASSWORD, and DATABASENAME accordingly."
75 echo " Replace USERNAME, PASSWORD, and DATABASENAME accordingly."
75 echo
76 echo
76 echo "Hit enter when ready..."
77 echo "Hit enter when ready..."
77 read dummy
78 read dummy
78 fi
79 fi
79
80
80 CAFE_PATH=`pwd`
81 CAFE_PATH=`pwd`
81
82
82 cd web
83 cd web
83
84
84 echo "Please provide grader database:"
85 echo "Please provide grader database:"
85 read database
86 read database
86
87
87 echo "Please provide grader username:"
88 echo "Please provide grader username:"
88 read username
89 read username
89
90
90 echo "Please provide $username password:"
91 echo "Please provide $username password:"
91 read password
92 read password
92
93
93 echo "development:" > config/database.yml
94 echo "development:" > config/database.yml
94 echo " adapter: mysql2" >> config/database.yml
95 echo " adapter: mysql2" >> config/database.yml
95 echo " encoding: utf8" >> config/database.yml
96 echo " encoding: utf8" >> config/database.yml
96 echo " reconnect: false" >> config/database.yml
97 echo " reconnect: false" >> config/database.yml
97 echo " database: $database" >> config/database.yml
98 echo " database: $database" >> config/database.yml
98 echo " pool: 5" >> config/database.yml
99 echo " pool: 5" >> config/database.yml
99 echo " username: $username" >> config/database.yml
100 echo " username: $username" >> config/database.yml
100 echo " password: $password" >> config/database.yml
101 echo " password: $password" >> config/database.yml
101 echo " host: localhost" >> config/database.yml
102 echo " host: localhost" >> config/database.yml
102 echo " socket: /var/run/mysqld/mysqld.sock" >> config/database.yml
103 echo " socket: /var/run/mysqld/mysqld.sock" >> config/database.yml
103 echo "" >> config/database.yml
104 echo "" >> config/database.yml
104 echo "production:" >> config/database.yml
105 echo "production:" >> config/database.yml
105 echo " adapter: mysql2" >> config/database.yml
106 echo " adapter: mysql2" >> config/database.yml
106 echo " encoding: utf8" >> config/database.yml
107 echo " encoding: utf8" >> config/database.yml
107 echo " reconnect: false" >> config/database.yml
108 echo " reconnect: false" >> config/database.yml
108 echo " database: $database" >> config/database.yml
109 echo " database: $database" >> config/database.yml
109 echo " pool: 5" >> config/database.yml
110 echo " pool: 5" >> config/database.yml
110 echo " username: $username" >> config/database.yml
111 echo " username: $username" >> config/database.yml
111 echo " password: $password" >> config/database.yml
112 echo " password: $password" >> config/database.yml
112 echo " host: localhost" >> config/database.yml
113 echo " host: localhost" >> config/database.yml
113 echo " socket: /var/run/mysqld/mysqld.sock" >> config/database.yml
114 echo " socket: /var/run/mysqld/mysqld.sock" >> config/database.yml
114
115
115 echo "Object.instance_eval{remove_const :GRADER_ROOT_DIR}" >> config/initializers/cafe_grader_config.rb
116 echo "Object.instance_eval{remove_const :GRADER_ROOT_DIR}" >> config/initializers/cafe_grader_config.rb
116 echo "Object.instance_eval{remove_const :GRADING_RESULT_DIR}" >> config/initializers/cafe_grader_config.rb
117 echo "Object.instance_eval{remove_const :GRADING_RESULT_DIR}" >> config/initializers/cafe_grader_config.rb
117 echo "GRADER_ROOT_DIR = '$CAFE_PATH/judge'" >> config/initializers/cafe_grader_config.rb
118 echo "GRADER_ROOT_DIR = '$CAFE_PATH/judge'" >> config/initializers/cafe_grader_config.rb
118 echo "GRADING_RESULT_DIR = '$CAFE_PATH/judge/result'" >> config/initializers/cafe_grader_config.rb
119 echo "GRADING_RESULT_DIR = '$CAFE_PATH/judge/result'" >> config/initializers/cafe_grader_config.rb
119
120
120 echo "Installing required gems"
121 echo "Installing required gems"
121 gem install bundler
122 gem install bundler
You need to be logged in to leave comments. Login now