rhoconnect 3.0.0.beta1 → 3.0.0.beta3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. data/CHANGELOG +16 -2
  2. data/Gemfile +14 -5
  3. data/Gemfile.lock +13 -23
  4. data/Rakefile +86 -0
  5. data/bench/bench_runner.rb +5 -4
  6. data/bench/benchapp/Gemfile +17 -8
  7. data/bench/blobapp/Gemfile +13 -14
  8. data/doc/adapters-crm.txt +226 -0
  9. data/doc/adapters-intro.txt +18 -0
  10. data/doc/client.txt +29 -2
  11. data/doc/heroku-addon.txt +54 -0
  12. data/doc/install.txt +1 -2
  13. data/doc/migration.txt +18 -6
  14. data/doc/net-plugin.txt +276 -0
  15. data/doc/plugin-intro.txt +6 -0
  16. data/doc/push.txt +1 -1
  17. data/doc/rails-plugin.txt +116 -0
  18. data/doc/rest-api.txt +2 -2
  19. data/doc/settings.txt +59 -0
  20. data/doc/tutorial.txt +8 -5
  21. data/generators/rhoconnect.rb +30 -0
  22. data/generators/templates/application/Gemfile +16 -7
  23. data/generators/templates/application/gitignore +4 -0
  24. data/install.sh +74 -106
  25. data/installer/deb-scripts/LICENSE +75 -0
  26. data/installer/deb-scripts/install.sh +300 -0
  27. data/installer/deb-scripts/scripts/rho_connect_install_constants.rb +32 -0
  28. data/installer/deb-scripts/scripts/rho_connect_install_installers.rb +103 -0
  29. data/installer/deb-scripts/scripts/rho_connect_install_utilities.rb +110 -0
  30. data/installer/deb-scripts/scripts/rhoinstaller.rb +55 -0
  31. data/installer/deb-scripts/utils/README +67 -0
  32. data/installer/deb-scripts/utils/create_texts.rb +76 -0
  33. data/installer/deb-scripts/utils/redis_init_script +124 -0
  34. data/installer/deb-scripts/utils/redis_log_rotate +8 -0
  35. data/installer/unix-like/install.sh +361 -0
  36. data/installer/unix-like/post-install.sh +8 -0
  37. data/installer/unix-like/pre-install.sh +8 -0
  38. data/installer/unix-like/rho_connect_install_constants.rb +9 -14
  39. data/installer/unix-like/rho_connect_install_debian.rb +7 -5
  40. data/installer/unix-like/rho_connect_install_dnd.rb +6 -6
  41. data/installer/unix-like/rho_connect_install_get_params.rb +1 -1
  42. data/installer/unix-like/rho_connect_install_installers.rb +39 -38
  43. data/installer/unix-like/rho_connect_install_utilities.rb +9 -10
  44. data/installer/unix-like/rho_connect_install_yum.rb +6 -5
  45. data/installer/unix-like/rhoinstaller.rb +8 -3
  46. data/installer/utils/create_texts.rb +313 -85
  47. data/installer/windows/rhosync.nsi +5 -5
  48. data/lib/rhoconnect/api/application/clientcreate.rb +1 -1
  49. data/lib/rhoconnect/api/application/clientregister.rb +1 -1
  50. data/lib/rhoconnect/api/application/clientreset.rb +1 -1
  51. data/lib/rhoconnect/client.rb +0 -1
  52. data/lib/rhoconnect/client_sync.rb +1 -0
  53. data/lib/rhoconnect/console/app/routes/home.rb +1 -1
  54. data/lib/rhoconnect/console/app/routes/user.rb +8 -3
  55. data/lib/rhoconnect/console/app/views/adapter.erb +2 -2
  56. data/lib/rhoconnect/console/app/views/ping.erb +14 -2
  57. data/lib/rhoconnect/console/app/views/users.erb +8 -1
  58. data/lib/rhoconnect/jobs/ping_job.rb +11 -3
  59. data/lib/rhoconnect/model.rb +2 -2
  60. data/lib/rhoconnect/read_state.rb +2 -0
  61. data/lib/rhoconnect/server.rb +4 -3
  62. data/lib/rhoconnect/source.rb +33 -6
  63. data/lib/rhoconnect/source_adapter.rb +5 -9
  64. data/lib/rhoconnect/source_sync.rb +11 -5
  65. data/lib/rhoconnect/store.rb +7 -4
  66. data/lib/rhoconnect/tasks.rb +3 -3
  67. data/lib/rhoconnect/version.rb +1 -1
  68. data/lib/rhoconnect.rb +22 -8
  69. data/rhoconnect.gemspec +4 -22
  70. data/spec/api/application/rhoconnect_api_spec.rb +54 -8
  71. data/spec/api/source/get_source_params_spec.rb +2 -1
  72. data/spec/api/source/list_sources_spec.rb +3 -3
  73. data/spec/app_spec.rb +8 -1
  74. data/spec/apps/rhotestapp/settings/settings.yml +10 -5
  75. data/spec/apps/rhotestapp/sources/other_adapter.rb +7 -0
  76. data/spec/client_sync_spec.rb +5 -8
  77. data/spec/dynamic_adapter_spec.rb +8 -8
  78. data/spec/generator/generator_spec.rb +4 -2
  79. data/spec/jobs/ping_job_spec.rb +53 -0
  80. data/spec/model_spec.rb +2 -2
  81. data/spec/rhosync_spec.rb +1 -1
  82. data/spec/server/server_spec.rb +3 -14
  83. data/spec/source_sync_spec.rb +84 -2
  84. data/spec/support/shared_examples.rb +2 -2
  85. data/tasks/redis.rake +2 -2
  86. metadata +30 -41
  87. data/spec/api/rhosync_api_spec.rb.orig +0 -606
@@ -0,0 +1,76 @@
1
+ #!/opt/rhoconnect/bin/ruby
2
+
3
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__),'..','scripts'))
4
+
5
+ require 'rho_connect_install_constants'
6
+
7
+ @prefix = '/opt/rhoconnect'
8
+ @dist = 'debian'
9
+ @redis = ''
10
+ @ruby_version = 'rubyee'
11
+ @profile = '~/.profile'
12
+
13
+ # place_redis_init
14
+ # Places the redis initialization file into the correct directory
15
+ def place_redis_init
16
+ redis_init="/etc/init.d/redis"
17
+
18
+ # Move the script into the appropriate directory
19
+ `mv redis_init_script #{redis_init}`
20
+ # Make the init script executable
21
+ `chmod +x #{redis_init}`
22
+
23
+ # Set run levels
24
+ `update-rc.d -f redis defaults`
25
+ end #place_redis_init
26
+
27
+ def place_redis_logrotate
28
+ log_rotate = '/etc/logrotate.d/redis'
29
+
30
+ # Move the file to the appropriate directory
31
+ `mv redis_log_rotate #{log_rotate}`
32
+ end
33
+
34
+ # place_readme
35
+ # Places the readme file in the appropriate directory
36
+ def place_readme
37
+ readme_dir = "#{prefix}/README"
38
+
39
+ # Move the readme into the appropriate folder
40
+ `mv README #{readme_dir}`
41
+ end #create_readme
42
+
43
+ def create_passenger_load
44
+ passenger_load_file = '/etc/apache2/mods-available/passenger.load'
45
+
46
+ passenger_load = <<_PASSENGER_LOAD_
47
+ LoadModule passenger_module /opt/rhoconnect/lib/ruby/gems/1.8/gems/#{Constants::PASSENGER_VERSION}/ext/apache2/mod_passenger.so
48
+ PassengerRoot /opt/rhoconnect/lib/ruby/gems/1.8/gems/#{Constants::PASSENGER_VERSION}
49
+ PassengerRuby /opt/rhoconnect/bin/ruby
50
+ _PASSENGER_LOAD_
51
+
52
+ File.open( passenger_load_file, 'w' ) { |f| f << passenger_load }
53
+ end #create_passenger_load
54
+
55
+ def create_nginx_vhost
56
+ vhost_file = ''
57
+
58
+ File.open( vhost_file, 'w' ) { |f| f << vhost }
59
+ end #create_apache_vhost
60
+
61
+ def create_texts
62
+ if @redis
63
+ place_redis_init
64
+ place_redis_logrotate
65
+ end
66
+
67
+ readme = create_readme
68
+
69
+ create_passenger_load
70
+ create_apache_vhost
71
+
72
+ puts readme
73
+
74
+ end #create_texts
75
+
76
+ create_texts
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env bash
2
+ ### BEGIN INIT INFO
3
+ # Provides: redis-server
4
+ # Required-Start: $syslog
5
+ # Required-Stop: $syslog
6
+ # Should-Start: $local_fs
7
+ # Should-Stop: $local_fs
8
+ # Default-Start: 2 3 4 5
9
+ # Default-Stop: 0 1 6
10
+ # Short-Description: redis-server - Persistent key-value db
11
+ # Description: redis-server - Persistent key-value db
12
+ ### END INIT INFO
13
+ #
14
+ # Author: Wayne E. Seguin <wayneeseguin@gmail.com>
15
+ # License: The same licence as Redis, New BSD
16
+ # http://www.opensource.org/licenses/bsd-license.php
17
+ #
18
+
19
+ # Source the system config file, if it exists.
20
+ if [[ -s /etc/conf.d/redis ]] ; then
21
+ source /etc/conf.d/redis
22
+ fi
23
+
24
+ # Default config variables that have not been set.
25
+ port="${port:-6379}"
26
+ prefix="${prefix:-/opt/rhoconnect}"
27
+ redis="${prefix}/bin/redis-server"
28
+ redis_cli="${prefix}/bin/redis-cli"
29
+ pidfile="${pidfile:-/var/run/redis.pid}"
30
+ config="${config:-/opt/rhoconnect/etc/redis.conf}"
31
+ user="${user:-root}"
32
+ #prefix="${prefix:-/usr/local}"
33
+ #config="${config:-/usr/local/etc/redis.conf}"
34
+ #pidfile="${pidfile:-/var/run/redis/redis.pid}"
35
+ #config="${config:-/etc/redis/redis.conf}"
36
+ #user="${user:-redis}"
37
+
38
+ #
39
+ # Set the running $pid value based on $pidfile.
40
+ #
41
+ if [[ -s "$pidfile" ]] ; then
42
+ pid=$(cat $pidfile)
43
+ else
44
+ rm -f $pidfile
45
+ fi
46
+
47
+ # In case there was pidfile corruption...
48
+ if [[ "Linux" = "$(uname)" ]] ; then
49
+ # /proc does not exist on say, Darwin
50
+ if [[ ! -z "${pid}" ]] && [[ ! -x "/proc/${pid}" ]] ;then
51
+ pid="$(ps auxww | grep [r]edis | grep "$config" | grep -v 'grep' | awk '{print $2}')"
52
+ elif [[ -z "${pid}" ]] ; then
53
+ pid="$(ps auxww | grep [r]edis | grep "$config" | grep -v 'grep' | awk '{print $2}')"
54
+ fi
55
+ else
56
+ if [[ -z "${pid}" ]] ; then
57
+ pid="$(ps auxww | grep [r]edis | grep "$config" | grep -v 'grep' | awk '{print $2}')"
58
+ fi
59
+ fi
60
+
61
+ #
62
+ # Start redis using redis-server as user 'redis'.
63
+ #
64
+ redis_start() {
65
+ if [[ -f $pidfile ]] ; then
66
+ echo "$pidfile exists, redis-server is either already running or crashed."
67
+ exit 1
68
+ elif [[ ! -z "$pid" ]] ; then
69
+ echo -e "\nRedis is already running with configuration '$config'."
70
+ echo "$pid" > $pidfile # Ensure pidfile exists with the pid.
71
+ else
72
+ echo "Starting Redis server..."
73
+ su $user -c "$redis $config"
74
+ exit 0
75
+ fi
76
+ }
77
+
78
+ #
79
+ # Stop redis using redis-cli SHUTDOWN.
80
+ #
81
+ redis_stop() {
82
+ echo -n "Stopping redis server on port ${port} ... "
83
+ "$redis_cli" -p ${port} SHUTDOWN
84
+
85
+ # Keep user informed while server shuts down.
86
+ echo "Waiting for the redis server to shutdown "
87
+
88
+ if [[ "Linux" = "$(uname)" ]] ; then
89
+ if [[ "${pid}" = "" ]] ; then
90
+ echo "redis server is not running."
91
+ # Clear out the old pidfile if available
92
+ rm -f $pidfile
93
+ exit 1
94
+ fi
95
+ while [[ -x /proc/${pid} ]] ; do
96
+ echo -n '.' ; sleep 1
97
+ done
98
+ else # Darwin, etc...
99
+ while [[ ! -z "$(ps auxww | grep [r]edis | grep "$config" | awk '{print $2}')" ]] ; do
100
+ echo -n '.' ; sleep 1
101
+ done
102
+ fi
103
+
104
+ # Clear out the old pidfile.
105
+ rm -f $pidfile
106
+
107
+ # Notify user of successful completion.
108
+ echo -e "redis server stopped."
109
+ exit 0
110
+ }
111
+
112
+ redis_usage() {
113
+ echo -e "Usage: $0 {start,stop}"
114
+ exit 1
115
+ }
116
+
117
+ #
118
+ # CLI logic.
119
+ #
120
+ case "$1" in
121
+ start) redis_start ;;
122
+ stop) redis_stop ;;
123
+ *) redis_usage ;;
124
+ esac
@@ -0,0 +1,8 @@
1
+ /var/log/redis.log {
2
+ rotate 3
3
+ missingok
4
+ notifempty
5
+ size 250k
6
+ create 0644 root root
7
+ compress
8
+ }
@@ -0,0 +1,361 @@
1
+ #!/bin/bash
2
+
3
+ # DO FIRST
4
+
5
+ # make sure only run as root
6
+ if [ "$(id -u)" != "0" ]; then
7
+ echo "This script must be run as root"
8
+ exit 1
9
+ fi
10
+
11
+ timeInitial=`date +%H%M%S`
12
+ installTime=$timeInitial
13
+
14
+ # CONSTANTS
15
+
16
+ RHOCONNECT_VERSION="3.0.0.beta3"
17
+ PACKAGE_INSTALL_DIR="/tmp/installdir/rhoconnect-${RHOCONNECT_VERSION}"
18
+ DEPS=(gcc tar make wget)
19
+
20
+ # FUNCTIONS
21
+
22
+ echoLog ()
23
+ {
24
+ timeStamp="[`date`]: "
25
+ echo -e $1
26
+ #end echoLog
27
+ }
28
+
29
+ showHelp ()
30
+ {
31
+ echoLog "
32
+ Usage: install.sh [options]\n
33
+ --no-redis Skip the installation of the redis server.\n
34
+ --offline Check that all necessary files are installed in /opt/rhoconnect if no prefix is specified.\n
35
+ -p, --prefix PREFIX Specify PREFIX as the installation directory. Default is /opt/rhoconnect.\n
36
+ -r, --ruby-version VERSION Specify version of ruby to install. Default is Ruby Enterprise.\n
37
+ -s, --silent Perform installation with minimal output.\n
38
+ --skip-ruby Use system ruby instead of ruby installed through this installer.\n
39
+ -w, --web-server SERVER Specify that you are using web server SERVER. Default is Nginx.\n
40
+ -h, --help Display this screen.\n
41
+ "
42
+ # End script after printing help message
43
+ exit
44
+ } #end showHelp
45
+
46
+ checkDeps ()
47
+ {
48
+ missingDeps=""
49
+ for ((i=0; i<${#DEPS[@]}; i++))
50
+ do
51
+ dep=`which ${DEPS[$i]} 2> /dev/null`
52
+ if [[ $dep == "" ]]; then
53
+ missingDeps="${missingDeps}${DEPS[$i]}\n"
54
+ fi
55
+ done
56
+
57
+ if [[ $missingDeps != "" ]]; then
58
+ echoLog "Dependencies Missing: " | tee -a $log
59
+ echoLog "${missingDeps}" | tee -a $log
60
+ echoLog "These must be installed before setup can continue..." | tee -a $log
61
+ exit
62
+ fi
63
+ } #end checkDeps
64
+
65
+ determinePkgMgr ()
66
+ {
67
+ if [[ `which apt-get 2> /dev/null` != "" ]]; then
68
+ pkgMgr="apt-get -y"
69
+ dist='debian'
70
+ elif [[ `which yum 2> /dev/null` != "" ]]; then
71
+ pkgMgr="yum -y"
72
+ dist='yum'
73
+ else
74
+ echoLog "No supported package manager." | tee -a $log
75
+ echoLog "Please install apt-get or yum to continue..." | tee -a $log
76
+ exit
77
+ fi
78
+ } #end determinePkgMgr
79
+
80
+ parseOpts ()
81
+ {
82
+ for i in "$*"; do
83
+ i=$(echo $i | tr '[:upper:]' '[:lower:]')
84
+ opts="${opts}${i} "
85
+ # looking for getVal flag to grab next value.
86
+ case $getVal in
87
+ "p" )
88
+ prefix=$i
89
+ ;;
90
+ "w" )
91
+ webServer=$i
92
+ ;;
93
+ "r" )
94
+ rubyVersion=$i
95
+ ;;
96
+ * )
97
+ ;;
98
+ esac
99
+
100
+ # Check options passed in and assign flags where applicable
101
+ case $i in
102
+ --web-server | -w )
103
+ getVal="w"
104
+ ;;
105
+ --prefix | -p )
106
+ getVal="p"
107
+ ;;
108
+ --ruby-version )
109
+ getVal="r"
110
+ ;;
111
+ --offline )
112
+ ;;
113
+ --silent | -s )
114
+ ;;
115
+ --skip-redis )
116
+ redis=false
117
+ ;;
118
+ --skip-ruby )
119
+ ruby=false
120
+ ;;
121
+ --help | -h )
122
+ showHelp
123
+ ;;
124
+ * )
125
+ if [ "${i}" ]; then
126
+ echoLog "${i} is not a valid option" | tee -a $log
127
+ exit
128
+ fi
129
+ ;;
130
+ esac
131
+ done
132
+ } #end parseOpts
133
+
134
+ cleanPrefix ()
135
+ {
136
+ # make sure there are no double /'s in the prefix path
137
+ prefix=${prefix/\/\/+/"/"}
138
+
139
+ # make sure path is absolute for ruby EE installation
140
+ if [[ $prefix == *\.* ]]; then
141
+ prefix=${prefix/\./`pwd`}
142
+ fi
143
+
144
+ # make sure prefix exists, create if not
145
+ if ! [ -d $prefix ]; then
146
+ mkdir -p $prefix
147
+ fi
148
+ } #end cleanPrefix
149
+
150
+ setPrefixDependantPaths ()
151
+ {
152
+ # if rubyBinDir not specified
153
+ if [$rubyBinDir == ""]; then
154
+ rubyBinDir="${prefix}/ruby/bin"
155
+ fi
156
+
157
+ # If logs directory does not exist, create it
158
+ if ! [[ -d "${prefix}/logs/" ]]; then
159
+ mkdir "${prefix}/logs/"
160
+ fi
161
+
162
+ # Make path to log file absolute and create directory if not already existent
163
+ log="${prefix}/logs/${log}"
164
+ touch $log
165
+
166
+ # Add the log file path to the info file
167
+ `echo $log >> info.dat`
168
+ cat info.dat
169
+
170
+ # Move info.dat into installation directory if not already there
171
+ if ! [ -e "${prefix}/info.dat" ]; then
172
+ mv info.dat "${prefix}/info.dat"
173
+ fi
174
+ } #end setPrefixDependantPaths
175
+
176
+ setDefaults ()
177
+ {
178
+ # if $prefix not specified set to /opt/rhoconnect
179
+ if [$prefix == ""]; then
180
+ prefix="/opt/rhoconnect"
181
+ fi
182
+
183
+ # if $webServer not specified set to nginx
184
+ if [$webServer == ""]; then
185
+ webServer="nginx"
186
+ fi
187
+ } #end setDefaults
188
+
189
+ logAndPrint ()
190
+ {
191
+ $1 > tempout 2>&1
192
+ exitStatus=$?
193
+ cat tempout | tee -a $log
194
+ } #end logAndPrint
195
+
196
+ setRubyVars ()
197
+ {
198
+ if [[ $rubyVersion == "" || $rubyVersion =~ ruby'ee'|'enterprise' ]]; then
199
+ rubyVersion="rubyee"
200
+ rubyDir="ruby-enterprise-1.8.7-2011.03"
201
+ rubyTar="${rubyDir}.tar.gz"
202
+ rubyURL="http://rubyenterpriseedition.googlecode.com/files/${rubyTar}"
203
+ elif [$rubyVersion == "ruby187"]; then
204
+ rubyDir="ruby-1.8.7"
205
+ rubyTar="${rubyDir}.tar.gz"
206
+ rubyURL="ftp://ftp.ruby-lang.org/pub/ruby/1.8/${rubyTar}"
207
+ elif [$rubyVersion == "ruby192"]; then
208
+ rubyDir="ruby-1.9.2-p180"
209
+ rubyTar="${rubyDir}.tar.gz"
210
+ rubyURL="http://ftp.ruby-lang.org/pub/ruby/1.9/${rubyTar}"
211
+ else
212
+ echoLog "${rubyVersion} is not a valid ruby version" | tee -a $log
213
+ exit
214
+ fi
215
+ } #end setRubyVars
216
+
217
+ installRuby ()
218
+ {
219
+ if [[ ! -d "${prefix}${rubyDir}" ]]; then
220
+ echoLog "Loading ruby tarball ..." | tee -a $log
221
+ echoLog "wget -P ${prefix} ${rubyURL}" | tee -a $log
222
+ wget -P ${prefix} ${rubyURL}
223
+ echoLog "tar -xzf ${prefix}/${rubyTar} -C ${prefix}" | tee -a $log
224
+ tar -xzf ${prefix}/${rubyTar} -C ${prefix}
225
+ fi
226
+ echoLog "Installing ruby. This may take some time..." | tee -a $log
227
+
228
+ case $rubyVersion in
229
+ rubyee)
230
+ logAndPrint "${prefix}/${rubyDir}/installer --dont-install-useful-gems --no-dev-docs --auto ${prefix}"
231
+ ;;
232
+ ruby187)
233
+ logAndPrint "${prefix}/${rubyDir}/configure --prefix=\"${prefix}\""
234
+ logAndPrint "make && make install"
235
+ ;;
236
+ ruby192)
237
+ logAndPrint "${prefix}/${rubyDir}/configure --prefix=\"${prefix}\""
238
+ logAndPrint "make && make install"
239
+ ;;
240
+ *)
241
+ logAndPrint "echoLog \"${rubyVersion} is not a supported ruby version\""
242
+ exit
243
+ ;;
244
+ esac
245
+
246
+ if [[ $exitStatus != 0 ]]; then
247
+ echoLog "Some dependencies not installed..." | tee -a $log
248
+ echoLog "Please install them and then re-run the installation script." | tee -a $log
249
+ exit
250
+ fi
251
+
252
+ rm tempout
253
+ } #end installRuby
254
+
255
+ getTime ()
256
+ {
257
+ timeDiff=$(( $1 - $timeInitial ))
258
+ timeSec=$(( $timeDiff % 100 ))
259
+ timeDiff=$(( $timeDiff / 100 ))
260
+
261
+ if [ $timeSec -gt 1 ]; then
262
+ timeSec=$timeSec" seconds"
263
+ else
264
+ timeSec=$timeSec" second"
265
+ fi
266
+
267
+ if [ $timeDiff -gt 0 ]; then
268
+ timeMin=$(( $timeDiff % 100 ))
269
+ timeDiff=$(( $timeDiff / 100 ))
270
+ if [ $timeMin -gt 1 ]; then
271
+ timeMin=$timeMin" minutes and "
272
+ else
273
+ timeMin=$timeMin" minute and "
274
+ fi
275
+ fi
276
+
277
+ if [ $timeDiff -gt 0 ]; then
278
+ timeHour=$(( $timeDiff % 100 ))
279
+ timeDiff=$(( $timeDiff / 100 ))
280
+ if [ $timeHour -gt 1 ]; then
281
+ timeHour=$timeHour" hours, "
282
+ else
283
+ timeHour=$timeHour" hour, "
284
+ fi
285
+ fi
286
+
287
+ echoLog "\nInstallation completed in ${timeHour}${timeMin}${timeSec}."
288
+ } #end getTime
289
+
290
+ # SCRIPT
291
+ # define log file name
292
+ DATEFILE=`date +%Y%m%d%H%M%S`
293
+ log=rhoconnect_$(date +$DATEFILE).log
294
+
295
+ # Make sure basic system dependencies are installed
296
+ checkDeps
297
+
298
+ # Determine which package management the system uses (Debian short-circuted)
299
+ determinePkgMgr
300
+
301
+ # define option variables
302
+ opts=""
303
+ prefix=""
304
+ getVal=""
305
+ webServer=""
306
+ rubyVersion=""
307
+ rubyBinDir=""
308
+
309
+ # parse command-line options
310
+ parseOpts "$*"
311
+
312
+ # Set default Values
313
+ setDefaults
314
+
315
+ # Reformat ruby version to fit this scripts format
316
+ # Tolower rubyVersion
317
+ rubyVersion=$(echoLog $rubyVersion | tr '[:upper:]' '[:lower:]')
318
+ # Remove all white space
319
+ rubyVersion=${rubyVersion//[[:space:]]}
320
+ # Remove periods and hyphens such as those present in version numbers
321
+ rubyVersion=${rubyVersion//[-.]/}
322
+
323
+ # Set ruby insatallation variables
324
+ setRubyVars
325
+
326
+ # Clean up the formatting of prefix
327
+ cleanPrefix
328
+
329
+ # Once the prefix path is cleaned up...
330
+ setPrefixDependantPaths
331
+
332
+ # Install ruby if not already installed
333
+ if ! [ -e "${prefix}/bin/ruby" ]; then
334
+ installRuby
335
+ else
336
+ echoLog "Ruby already installed" | tee -a $log
337
+ fi
338
+
339
+ # Construct the string with which to call the ruby installation script.
340
+ callruby="sudo ${prefix}/bin/ruby ${PACKAGE_INSTALL_DIR}/unix-like/rhoinstaller.rb ${opts}"
341
+ # Call the ruby script
342
+ $callruby
343
+
344
+ if [[ $installedSoftware -eq ${#INSTALL_ARRAY[@]} ]]; then
345
+ rm "${prefix}/info.dat"
346
+ if [ -e $prefix$rubyTar ]; then
347
+ mv $prefix/$rubyTar $prefix"/downloads/"$rubyTar
348
+ fi
349
+ if [ -e $prefix$rubyDir ]; then
350
+ mv $prefix$rubyDir $prefix"/downloads/"$rubyDir
351
+ fi
352
+ if [ ! -e $prefix"/post-install" ]; then
353
+ mkdir $prefix"/post-install"
354
+ fi
355
+
356
+ opts=$opts" -d $dist"
357
+
358
+ sudo ${prefix}/bin/ruby ${PACKAGE_INSTALL_DIR}/utils/create_texts.rb ${opts}
359
+ # timeFinal=`date +%H%M%S`
360
+ # getTime $timeFinal
361
+ fi
@@ -0,0 +1,8 @@
1
+ #!/bin/sh
2
+ VERSION=3.0.0.beta3
3
+
4
+ cd /tmp/installdir/rhoconnect-$VERSION
5
+ ./install.sh -v $VERSION
6
+
7
+ echo "Delete tmp files ..."
8
+ rm -rf /tmp/installdir
@@ -0,0 +1,8 @@
1
+ #!/bin/sh
2
+ VERSION=3.0.0.beta3
3
+
4
+ cd /tmp/installdir/rhoconnect-$VERSION
5
+ ./install.sh
6
+
7
+ echo "Delete tmp files ..."
8
+ rm -rf /tmp/installdir
@@ -8,27 +8,22 @@ PACKAGES = ["zlib1g-dev",
8
8
  "libaprutil1-dev",
9
9
  "dtach"]
10
10
 
11
- RUBYGEMS = "rubygems-1.8.5"
12
- REDIS = "redis-2.2.12"
11
+ #RUBYGEMS = "rubygems-1.8.5"
12
+ REDIS = "redis-2.2.13"
13
13
  SQLITE3 = "sqlite-autoconf-3070701"
14
+ RUBY = "ruby-enterprise-1.8.7-2011.03"
15
+ Nginx = "nginx-1.0.6"
14
16
 
15
- SOFTWARE = [RUBYGEMS,
16
- REDIS,
17
- SQLITE3]
17
+ SOFTWARE = [ REDIS, SQLITE3, RUBY ]
18
18
 
19
- RUBYGEMS_URL = "http://rubyforge.org/frs/download.php/74954/" +
20
- "#{ RUBYGEMS }.tgz"
19
+ #RUBYGEMS_URL = "http://rubyforge.org/frs/download.php/74954/" + "#{ RUBYGEMS }.tgz"
21
20
  REDIS_URL = "http://redis.googlecode.com/files/#{ REDIS }.tar.gz"
22
21
  SQLITE3_URL = "http://www.sqlite.org/sqlite-autoconf-3070701.tar.gz"
23
22
 
24
23
 
25
- URLS = [RUBYGEMS_URL,
26
- REDIS_URL,
27
- SQLITE3_URL]
24
+ URLS = [ REDIS_URL, SQLITE3_URL ]
28
25
 
29
- GEMS = ["bundler",
30
- "passenger",
31
- "sqlite3"]
26
+ GEMS = ["bundler", "passenger"]
32
27
 
33
28
  SUPPORTED_PKG_MGRS = ["apt-get", "yum"]
34
29
 
@@ -40,7 +35,7 @@ CHECKS = ["check_all_packages",
40
35
  "check_all_gems",
41
36
  "check_web_server_running"]
42
37
 
43
- DEFAULT_INSTALL_DIR = "/opt/rhoconnect/"
38
+ DEFAULT_INSTALL_DIR = "/opt/rhoconnect"
44
39
 
45
40
  DEFAULTS = {"Packages" => PACKAGES,
46
41
  "Software" => SOFTWARE,
@@ -26,12 +26,14 @@ class Debian
26
26
  set_log_file @options[:log]
27
27
 
28
28
  #gather necessary files
29
- download_and_decompress @options[:prefix]
29
+ download_and_decompress(@options[:prefix], [Constants::REDIS_URL])
30
30
 
31
- #install ruby gems
32
- install_rubygems
31
+ # ruby gems is installed by the REE installer
32
+ #install_rubygems
33
33
  install_redis if @options[:redis]
34
- install_sqlite
34
+
35
+ # Look for sqlite3-dev as it is required by the sqlite3 gem
36
+ `apt-get -y install libsqlite3-dev` if `dpkg -l | grep libsqlite3-dev`.empty?
35
37
 
36
38
  #start installing
37
39
  install_all_gems
@@ -41,7 +43,7 @@ class Debian
41
43
  install_rhoconnect
42
44
 
43
45
  #remove downloaded tarballs
44
- cleanup options[:prefix], @options
46
+ cleanup options[:prefix]
45
47
  end #execute_installation
46
48
 
47
49
  # to_s
@@ -5,10 +5,10 @@ module DownloadAndDocompress
5
5
 
6
6
  # download_and_decompress
7
7
  # Delegates the download and decompression duties
8
- def download_and_decompress(prefix)
8
+ def download_and_decompress(prefix, tarballs)
9
9
  print_header "Downloading and Decompressing"
10
10
  downloads = 0
11
- Constants::URLS.each do |url|
11
+ tarballs.each do |url|
12
12
  if !File.exists?("#{ get_tarball_name url }") ||
13
13
  !File.exists?("#{ get_version url }")
14
14
  wget_download prefix, url
@@ -25,8 +25,8 @@ module DownloadAndDocompress
25
25
  # Takes a URL and the name of a tarball and issues a wget command on said
26
26
  # URL unless the tarball or directory already exists
27
27
  def wget_download(prefix, url)
28
- if !File.exists?("#{ prefix }#{ get_tarball_name url }") &&
29
- !File.directory?("#{ prefix }#{ get_version url }")
28
+ if !File.exists?("#{ prefix }/#{ get_tarball_name url }") &&
29
+ !File.directory?("#{ prefix }/#{ get_version url }")
30
30
  cmd "wget -P #{ prefix } #{ url }"
31
31
  end #if
32
32
  end #wget_download
@@ -37,8 +37,8 @@ module DownloadAndDocompress
37
37
  def decompress(prefix, url)
38
38
  tarball = get_tarball_name(url)
39
39
  dir = get_version(url)
40
- cmd "tar -xzf #{ prefix }#{ tarball } -C #{ prefix }" unless
41
- File.directory? "#{ prefix }#{ dir }"
40
+ cmd "tar -xzf #{ prefix }/#{ tarball } -C #{ prefix }" unless
41
+ File.directory? "#{ prefix }/#{ dir }"
42
42
  end #decompress
43
43
 
44
44
  # get_version