astroboa-cli 0.4.3 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/README.md +5 -1
- data/astroboa-cli.gemspec +5 -3
- data/lib/astroboa-cli/command/server.rb +194 -180
- data/lib/astroboa-cli/util.rb +13 -13
- data/lib/astroboa-cli/version.rb +1 -1
- data/test/features/astroboa-cli.feature +1 -1
- metadata +25 -4
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -8,7 +8,11 @@ It has easy to use commands for installing astroboa platform, creating new repos
|
|
8
8
|
## Prerequisites
|
9
9
|
* Linux or MAC OS X operating system. Windows is not yet supported
|
10
10
|
|
11
|
-
*
|
11
|
+
* BUILD TOOLS:
|
12
|
+
* In MAC OS X is strongly recommended to install 'brew' package manager as well as XCODE
|
13
|
+
and XCODE command line tools in order to be able to compile new packages and ruby native extensions.
|
14
|
+
* If you're running Ubuntu, you must install the build-essential package (apt-get install build-essential)
|
15
|
+
because some required gems (nokogiri, pg) build native extensions and require the make utility.
|
12
16
|
|
13
17
|
* Java 1.6.x is required for running astroboa server.
|
14
18
|
* If you consider a production system use **Sun/Oracle JDK**. For testing/development **OpenJDK** can be ok but we have not exhaustively tested it.
|
data/astroboa-cli.gemspec
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "date"
|
3
4
|
require "astroboa-cli/version"
|
4
5
|
|
5
6
|
Gem::Specification.new do |s|
|
6
7
|
s.name = "astroboa-cli"
|
7
8
|
s.version = AstroboaCLI::VERSION
|
8
9
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ["
|
10
|
-
s.email = ["
|
10
|
+
s.authors = ["Gregory Chomatas"]
|
11
|
+
s.email = ["gchomatas@betaconcept.com"]
|
11
12
|
s.homepage = "http://www.astroboa.org"
|
12
13
|
s.date = Date.today.to_s
|
13
14
|
s.summary = %q{Astroboa Command Line Interface for astroboa platform and astroboa apps management.}
|
@@ -22,12 +23,13 @@ Gem::Specification.new do |s|
|
|
22
23
|
s.files = `git ls-files`.split("\n")
|
23
24
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
24
25
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
25
|
-
|
26
|
+
|
26
27
|
s.require_paths = ["lib"]
|
27
28
|
s.add_runtime_dependency 'progressbar'
|
28
29
|
s.add_runtime_dependency 'rubyzip'
|
29
30
|
s.add_runtime_dependency 'erubis'
|
30
31
|
s.add_runtime_dependency 'nokogiri', '>= 1.5.5'
|
31
32
|
s.add_runtime_dependency 'colorize'
|
33
|
+
s.add_runtime_dependency 'zip-zip'
|
32
34
|
s.executables = ["astroboa-cli"]
|
33
35
|
end
|
@@ -8,77 +8,77 @@ require 'progressbar'
|
|
8
8
|
require 'net/http'
|
9
9
|
require 'uri'
|
10
10
|
require 'yaml'
|
11
|
-
|
11
|
+
|
12
12
|
# install and setup astroboa server
|
13
13
|
#
|
14
14
|
class AstroboaCLI::Command::Server < AstroboaCLI::Command::Base
|
15
|
-
|
15
|
+
|
16
16
|
# server:install
|
17
17
|
#
|
18
18
|
# Installs and setups astroboa server.
|
19
19
|
# Use the install command only for the initial installation. If you want to upgrade see 'astroboa-cli help server:upgrade'
|
20
|
-
# Before you run the install command check the following requirements:
|
21
|
-
# + You should have already installed java 1.
|
20
|
+
# Before you run the install command check the following requirements:
|
21
|
+
# + You should have already installed java 1.7 and ruby 1.9.x or later
|
22
22
|
# + You are running this command from ruby version 1.9.x or later
|
23
23
|
# + You should have the unzip command. It is required for unzipping the downloaded packages
|
24
24
|
# + If you choose a database other than derby then the database should be already installed and running and you should know the db admin user and password
|
25
25
|
#
|
26
26
|
# -i, --install_dir INSTALLATION_DIRECTORY # The full path to the directory into which to install astroboa # Default is '/opt/astroboa' in linux and '$HOME/astroboa' in mac os x and windows
|
27
27
|
# -r, --repo_dir REPOSITORIES_DIRECTORY # The full path of the directory that will contain the repositories configuration and data # Default is $installation_dir/repositories
|
28
|
-
# -d, --database DATABASE_VENDOR # Select which database to use for data persistense # Supported databases are: derby, postgres-8.2, postgres-8.3, postgres-8.4, postgres-9.0, postgres-9.1 # Default is derby
|
28
|
+
# -d, --database DATABASE_VENDOR # Select which database to use for data persistense # Supported databases are: derby, postgres-8.2, postgres-8.3, postgres-8.4, postgres-9.0, postgres-9.1, postgres-9.2, postgres-9.3 # Default is derby
|
29
29
|
# -s, --database_server DATABASE_SERVER_IP # Specify the database server ip or FQDN (e.g 192.168.1.100 or postgres.localdomain.vpn) # Default is localhost # Not required if db is derby (it will be ignored)
|
30
|
-
# -u, --database_admin DB_ADMIN_USER # The user name of the database administrator # If not specified it will default to 'postgres' for postgresql db # Not required if db is derby (it will be ignored)
|
30
|
+
# -u, --database_admin DB_ADMIN_USER # The user name of the database administrator # If not specified it will default to 'postgres' for postgresql db # Not required if db is derby (it will be ignored)
|
31
31
|
#
|
32
|
-
# For security reasons (to avoid leaving the password in command history) there is no command option
|
33
|
-
# for specifing the password of the database administrator.
|
34
|
-
# But do not worry, the password will be asked from you during the installation process
|
32
|
+
# For security reasons (to avoid leaving the password in command history) there is no command option
|
33
|
+
# for specifing the password of the database administrator.
|
34
|
+
# But do not worry, the password will be asked from you during the installation process
|
35
35
|
# A db password is required only if you choose postgres as your database.
|
36
|
-
# If you require to do an unattended, non-interactive installation (e.g. run astroboa-cli from chef or puppet)
|
36
|
+
# If you require to do an unattended, non-interactive installation (e.g. run astroboa-cli from chef or puppet)
|
37
37
|
# then you can call astroboa-cli like this:
|
38
|
-
# $ echo "postgres_admin_password" | astroboa-cli server:install -d postgres-9.
|
39
|
-
# Take care that the db password is saved for later use (repositories creation / deletion)
|
38
|
+
# $ echo "postgres_admin_password" | astroboa-cli server:install -d postgres-9.3
|
39
|
+
# Take care that the db password is saved for later use (repositories creation / deletion)
|
40
40
|
# in astroboa server config (~/.astoboa-conf.yml in mac and /etc/astroboa/astroboa-conf.yml in linux).
|
41
|
-
# This file is created to be readable / writable only by root in linux
|
41
|
+
# This file is created to be readable / writable only by root in linux
|
42
42
|
# and only by the user that does the installation in mac os x.
|
43
43
|
#
|
44
44
|
def install
|
45
45
|
@torquebox_download_url = 'http://www.astroboa.org/releases/astroboa/latest/torquebox-dist-2.0.3-bin.zip'
|
46
46
|
@torquebox_package = @torquebox_download_url.split("/").last
|
47
|
-
|
47
|
+
|
48
48
|
@torquebox_version_download_url = 'http://www.astroboa.org/releases/astroboa/latest/TORQUEBOX-VERSION'
|
49
49
|
@torquebox_version_file = @torquebox_version_download_url.split("/").last
|
50
|
-
|
50
|
+
|
51
51
|
@astroboa_ear_download_url = 'http://www.astroboa.org/releases/astroboa/latest/astroboa.ear'
|
52
52
|
@astroboa_ear_package = @astroboa_ear_download_url.split("/").last
|
53
|
-
|
53
|
+
|
54
54
|
@astroboa_setup_templates_download_url = 'http://www.astroboa.org/releases/astroboa/latest/astroboa-setup-templates.zip'
|
55
55
|
@astroboa_setup_templates_package = @astroboa_setup_templates_download_url.split("/").last
|
56
|
-
|
56
|
+
|
57
57
|
@schemas_download_url = 'http://www.astroboa.org/releases/astroboa/latest/schemas.zip'
|
58
58
|
@schemas_package = @schemas_download_url.split("/").last
|
59
|
-
|
59
|
+
|
60
60
|
@astroboa_version_download_url = 'http://www.astroboa.org/releases/astroboa/latest/ASTROBOA-VERSION'
|
61
61
|
@astroboa_version_file = @astroboa_version_download_url.split("/").last
|
62
|
-
|
62
|
+
|
63
63
|
@install_dir = options[:install_dir] ||= mac_os_x? || windows? ? File.join(Dir.home, 'astroboa') : '/opt/astroboa'
|
64
64
|
@install_dir = File.expand_path @install_dir # if provided path was not absolute expand it
|
65
65
|
@repo_dir = options[:repo_dir] ||= File.join(@install_dir, "repositories")
|
66
66
|
@repo_dir = File.expand_path @repo_dir # if provided path was not absolute expand it
|
67
67
|
display <<-MSG.gsub(/^ {4}/, '')
|
68
|
-
Starting astroboa server installation
|
69
|
-
Server will be installed in: #{@install_dir}
|
68
|
+
Starting astroboa server installation
|
69
|
+
Server will be installed in: #{@install_dir}
|
70
70
|
Repository Data and config will be stored in: #{@repo_dir}
|
71
71
|
MSG
|
72
|
-
|
72
|
+
|
73
73
|
@database = options[:database] ||= 'derby'
|
74
|
-
|
74
|
+
|
75
75
|
db_error_message =<<-MSG.gsub(/^ {4}/, '')
|
76
|
-
The selected database '#{@database}' is not supported.
|
77
|
-
Supported databases are: derby, postgres-8.2, postgres-8.3, postgres-8.4, postgres-9.0, postgres-9.1
|
76
|
+
The selected database '#{@database}' is not supported.
|
77
|
+
Supported databases are: derby, postgres-8.2, postgres-8.3, postgres-8.4, postgres-9.0, postgres-9.1, postgres-9.2, postgres-9.3
|
78
78
|
MSG
|
79
|
-
|
80
|
-
error db_error_message unless %W(derby postgres-8.2 postgres-8.3 postgres-8.4 postgres-9.0 postgres-9.1).include?(@database)
|
81
|
-
|
79
|
+
|
80
|
+
error db_error_message unless %W(derby postgres-8.2 postgres-8.3 postgres-8.4 postgres-9.0 postgres-9.1 postgres-9.2 postgres-9.3).include?(@database)
|
81
|
+
|
82
82
|
if @database.split("-").first == "postgres"
|
83
83
|
@database_admin = options[:database_admin] ||= "postgres"
|
84
84
|
@database_admin_password = get_password("Please enter the password for postgresql admin user '#{@database_admin}': ")
|
@@ -89,7 +89,7 @@ class AstroboaCLI::Command::Server < AstroboaCLI::Command::Base
|
|
89
89
|
@database_server = options[:database_server] ||= "localhost"
|
90
90
|
display "repository database is '#{@database}' accessed with user: '#{@database_admin}'"
|
91
91
|
display "Database server IP or FQDN is: #{@database_server}" if @database.split("-").first == "postgres"
|
92
|
-
# check if all requirement are fulfilled before proceeding with the installation
|
92
|
+
# check if all requirement are fulfilled before proceeding with the installation
|
93
93
|
check_installation_requirements
|
94
94
|
download_server_components
|
95
95
|
install_server_components
|
@@ -99,8 +99,8 @@ class AstroboaCLI::Command::Server < AstroboaCLI::Command::Base
|
|
99
99
|
cleanup_installation
|
100
100
|
# export_environment_variables
|
101
101
|
end
|
102
|
-
|
103
|
-
|
102
|
+
|
103
|
+
|
104
104
|
# server:start
|
105
105
|
#
|
106
106
|
# starts astroboa server in the foreground or as a background process.
|
@@ -117,42 +117,42 @@ class AstroboaCLI::Command::Server < AstroboaCLI::Command::Base
|
|
117
117
|
# 'astroboa-cli help service:stop'
|
118
118
|
#
|
119
119
|
# -b, --background # Starts astroboa in the background. Use 'astroboa-cli server:stop' to gracefully stop it
|
120
|
-
# -j, --jvm_options JVM_OPTIONS # java options for starting the astroboa jvm
|
120
|
+
# -j, --jvm_options JVM_OPTIONS # java options for starting the astroboa jvm
|
121
121
|
#
|
122
122
|
def start
|
123
123
|
error 'astroboa is already running' if astroboa_running?
|
124
124
|
|
125
125
|
astroboa_installed?
|
126
|
-
|
126
|
+
|
127
127
|
server_config = get_server_configuration
|
128
|
-
|
128
|
+
|
129
129
|
# Astroboa runs inside torquebox (a special version of JBOSS AS 7) which requires jruby
|
130
130
|
# Torquebox comes with the required jruby installed.
|
131
131
|
# If the env variable 'JRUBY_HOME' exists torquebox does not use ts own jruby but that pointed by the env variable
|
132
132
|
# So we unset the variable (just in case it is set) to enforce torquebox to use its own jruby
|
133
133
|
ENV.delete('JRUBY_HOME')
|
134
|
-
|
134
|
+
|
135
135
|
# set jruby opts so that jruby runs in 1.9 mode
|
136
136
|
ENV['JRUBY_OPTS'] = '--1.9'
|
137
|
-
|
137
|
+
|
138
138
|
# don't send the gemfile from the current app
|
139
139
|
ENV.delete('BUNDLE_GEMFILE')
|
140
|
-
|
140
|
+
|
141
141
|
# append java options to the environment variable
|
142
142
|
ENV['APPEND_JAVA_OPTS'] = options[:jvm_options]
|
143
|
-
|
143
|
+
|
144
144
|
command = File.join(server_config['install_dir'], 'torquebox', 'jboss', 'bin', 'standalone.sh')
|
145
|
-
|
146
|
-
|
145
|
+
|
146
|
+
|
147
147
|
jboss_log_file = File.join(server_config['install_dir'], 'torquebox', 'jboss', 'standalone', 'log', 'server.log')
|
148
|
-
|
148
|
+
|
149
149
|
# We should always run astroboa as the user that owns the astroboa installation
|
150
150
|
# otherwise problems with file permissions may be encountered.
|
151
|
-
# If the current process owner is not the astroboa owner then we check if process owner
|
151
|
+
# If the current process owner is not the astroboa owner then we check if process owner
|
152
152
|
# is the super user (i.e astroboa-cli is run with sudo).
|
153
|
-
# If process owner is super user we change the process owner
|
153
|
+
# If process owner is super user we change the process owner
|
154
154
|
# to be the astroboa user (we can do that since process run with sudo privileges) and we run astroboa.
|
155
|
-
# If process owner is not super user we give a notice that astroboa-cli should be executed with sudo and exit.
|
155
|
+
# If process owner is not super user we give a notice that astroboa-cli should be executed with sudo and exit.
|
156
156
|
user = ENV['USER'] if mac_os_x? || linux?
|
157
157
|
user = ENV['USERNAME'] if windows?
|
158
158
|
install_dir = server_config['install_dir']
|
@@ -160,7 +160,7 @@ class AstroboaCLI::Command::Server < AstroboaCLI::Command::Base
|
|
160
160
|
astroboa_user = Etc.getpwuid(astroboa_uid).name
|
161
161
|
process_uid = Process.uid
|
162
162
|
process_user = Etc.getpwuid(process_uid).name
|
163
|
-
|
163
|
+
|
164
164
|
if astroboa_uid != process_uid
|
165
165
|
display "You are running astroboa-cli as user: #{process_user} and astroboa should run as user: #{astroboa_user}"
|
166
166
|
display "We need sudo privileges in order to do this. Lets check..."
|
@@ -176,8 +176,11 @@ class AstroboaCLI::Command::Server < AstroboaCLI::Command::Base
|
|
176
176
|
display "You are root: OK" if user == 'root'
|
177
177
|
end
|
178
178
|
end
|
179
|
-
|
179
|
+
|
180
180
|
if options[:background]
|
181
|
+
ENV['JBOSS_PIDFILE'] = '/var/run/astroboa/astroboa.pid'
|
182
|
+
ENV['LAUNCH_JBOSS_IN_BACKGROUND'] = 'true'
|
183
|
+
|
181
184
|
display "Astroboa is starting in the background..."
|
182
185
|
display "You can check the log file with 'tail -f #{jboss_log_file}'"
|
183
186
|
display "When server startup has finished access astroboa console at: http://localhost:8080/console"
|
@@ -188,9 +191,9 @@ class AstroboaCLI::Command::Server < AstroboaCLI::Command::Base
|
|
188
191
|
display "When server startup has finished access astroboa console at: http://localhost:8080/console"
|
189
192
|
exec %(#{command})
|
190
193
|
end
|
191
|
-
|
194
|
+
|
192
195
|
end
|
193
|
-
|
196
|
+
|
194
197
|
# server:stop
|
195
198
|
#
|
196
199
|
# stops astroboa server if it is already running.
|
@@ -213,9 +216,9 @@ class AstroboaCLI::Command::Server < AstroboaCLI::Command::Base
|
|
213
216
|
else
|
214
217
|
error "Failed to shutdown Astroboa. Message is: #{output}"
|
215
218
|
end
|
216
|
-
|
219
|
+
|
217
220
|
end
|
218
|
-
|
221
|
+
|
219
222
|
# server:check
|
220
223
|
#
|
221
224
|
# checks if astroboa server is properly installed and displays the installation paths
|
@@ -223,57 +226,57 @@ class AstroboaCLI::Command::Server < AstroboaCLI::Command::Base
|
|
223
226
|
#
|
224
227
|
def check
|
225
228
|
astroboa_installed?
|
226
|
-
display astroboa_running? ? 'astroboa is running' : 'astroboa is not running'
|
229
|
+
display astroboa_running? ? 'astroboa is running' : 'astroboa is not running'
|
227
230
|
end
|
228
|
-
|
229
|
-
|
231
|
+
|
232
|
+
|
230
233
|
private
|
231
|
-
|
234
|
+
|
232
235
|
def check_installation_requirements
|
233
236
|
display "Checking installation requirements"
|
234
|
-
|
235
|
-
# if OS is linux or [OS is mac and install_dir / repo_dir is not writable by current user]
|
237
|
+
|
238
|
+
# if OS is linux or [OS is mac and install_dir / repo_dir is not writable by current user]
|
236
239
|
# then astroboa-cli should run with sudo in order to have the required privileges to write files
|
237
240
|
check_if_running_with_sudo if linux? || (mac_os_x? && !(dir_writable?(@install_dir) && dir_writable?(@repo_dir)))
|
238
|
-
|
241
|
+
|
239
242
|
# do not proceed if astroboa is already installed
|
240
243
|
check_if_astroboa_exists_in_install_dirs
|
241
|
-
|
244
|
+
|
242
245
|
# installation is not currently supported on windows
|
243
246
|
check_if_os_is_windows
|
244
|
-
|
247
|
+
|
245
248
|
# check if the proper version of java is installed
|
246
249
|
java_ok?
|
247
|
-
|
250
|
+
|
248
251
|
# check if unzip command is available
|
249
252
|
check_if_unzip_is_installed
|
250
|
-
|
253
|
+
|
251
254
|
#if repositories will be backed by postgres
|
252
255
|
if @database.split("-").first == "postgres"
|
253
|
-
|
254
|
-
# check if 'pg' gem is installed
|
256
|
+
|
257
|
+
# check if 'pg' gem is installed
|
255
258
|
if gem_available?('pg')
|
256
259
|
display "Checking if 'pg' gem is installed (required for creating postgres db): OK"
|
257
260
|
else
|
258
261
|
error <<-MSG.gsub(/^ {4}/, '')
|
259
262
|
You should manually install the 'pg' gem if you want to create repositories backed by postgres
|
260
|
-
astroboa-cli gem does not automatically install 'pg' gem since in some environments (e.g. MAC OS X) this might require
|
263
|
+
astroboa-cli gem does not automatically install 'pg' gem since in some environments (e.g. MAC OS X) this might require
|
261
264
|
to have a local postgres already installed, which in turn is too much if you do not care about postgres.
|
262
265
|
In *Ubuntu Linux* run first 'sudo apt-get install libpq-dev' and then run 'gem install pg'.
|
263
266
|
For MAC OS x read http://deveiate.org/code/pg/README-OS_X_rdoc.html to learn how to install the 'pg' gem.
|
264
267
|
MSG
|
265
268
|
end
|
266
|
-
|
269
|
+
|
267
270
|
# check if we can connect to postgres with the specified db admin account
|
268
271
|
if postgres_connectivity?(@database_server, @database_admin, @database_admin_password)
|
269
272
|
display "Checking if we can connect to postgres with the specified db admin account: OK"
|
270
273
|
else
|
271
274
|
error <<-MSG.gsub(/^ {4}/, '')
|
272
|
-
Could not connect to the postgres db server (@database_server)
|
275
|
+
Could not connect to the postgres db server (@database_server)
|
273
276
|
with the db admin user (@database_admin) and the password you have specified.
|
274
277
|
Please check that the db admin user and the password are correct.
|
275
|
-
Also check that the postgres server ip or fqdn is correct and that postgres
|
276
|
-
has been properly setup to accept connections from this machine (check where postgres listens in postgres.conf
|
278
|
+
Also check that the postgres server ip or fqdn is correct and that postgres
|
279
|
+
has been properly setup to accept connections from this machine (check where postgres listens in postgres.conf
|
277
280
|
and also check ip/user restrictions in pg_hba.conf).
|
278
281
|
Finally check that there are no firewall rules in this machine or in the machine
|
279
282
|
that postgres runs that prevent the connection (postgres runs by default on port 5432)
|
@@ -281,15 +284,15 @@ private
|
|
281
284
|
end
|
282
285
|
end
|
283
286
|
end
|
284
|
-
|
285
|
-
|
287
|
+
|
288
|
+
|
286
289
|
def check_if_os_is_windows
|
287
290
|
message = "astroboa server installation is currently supported for linux and mac os x"
|
288
291
|
error message if RbConfig::CONFIG['host_os'] =~ /mswin|windows|cygwin/i
|
289
292
|
display "Checking if operating system is supported: OK"
|
290
293
|
end
|
291
|
-
|
292
|
-
|
294
|
+
|
295
|
+
|
293
296
|
def check_if_astroboa_exists_in_install_dirs
|
294
297
|
astroboa_error_message = "Astroboa seems to be already installed at #{@install_dir}. Delete the installation directory or specify another install path. Run 'astroboa-cli help server:upgrade' to find how to upgrade"
|
295
298
|
repositories_error_message = "Repositories already exist at #{@repo_dir}. Specify another repository path or run 'astroboa-cli help server:upgrade' to find how to upgrade"
|
@@ -297,54 +300,54 @@ private
|
|
297
300
|
error repositories_error_message if File.directory? File.join(@repo_dir, "identities")
|
298
301
|
display "Verifing that Astroboa is not already installed in the specified directories: OK"
|
299
302
|
end
|
300
|
-
|
301
|
-
|
303
|
+
|
304
|
+
|
302
305
|
def astroboa_installed?
|
303
306
|
server_config = get_server_configuration
|
304
|
-
|
307
|
+
|
305
308
|
problem_message = "Astroboa is not properly installed."
|
306
|
-
|
309
|
+
|
307
310
|
astroboa_ear = Dir[File.join server_config['install_dir'], "torquebox", "jboss", "standalone", "deployments", "astroboa*.ear"].pop
|
308
311
|
error "#{problem_message} Astroboa ear package is not installed" unless astroboa_ear
|
309
312
|
display "Check astroboa ear : OK"
|
310
|
-
|
313
|
+
|
311
314
|
error "#{problem_message} Astroboa identities repository is not setup" unless File.directory? File.join(server_config['repos_dir'], "identities")
|
312
315
|
display "Check Astroboa identities repository : OK"
|
313
|
-
|
316
|
+
|
314
317
|
# since the astroboa user is the same as the astroboa-cli user we can also check the environment variables
|
315
318
|
# if mac_os_x?
|
316
319
|
# error "#{problem_message} Environment variable 'ASTROBOA_HOME' is not set. Check that your .bash_profile has run and it properly exports the 'ASTROBOA_HOME' environment variable" unless ENV['ASTROBOA_HOME']
|
317
|
-
# error "#{problem_message} Environment variable 'ASTROBOA_REPOSITORIES_HOME' is not set. Check that your .bash_profile has run and it properly exports the 'ASTROBOA_REPOSITORIES_HOME' environment variable" unless ENV['ASTROBOA_REPOSITORIES_HOME']
|
320
|
+
# error "#{problem_message} Environment variable 'ASTROBOA_REPOSITORIES_HOME' is not set. Check that your .bash_profile has run and it properly exports the 'ASTROBOA_REPOSITORIES_HOME' environment variable" unless ENV['ASTROBOA_REPOSITORIES_HOME']
|
318
321
|
# error "#{problem_message} Environment variable 'JBOSS_HOME' is not set. Check that your .bash_profile has run and it properly exports the 'JBOSS_HOME' environment variable" unless ENV['JBOSS_HOME']
|
319
322
|
# display "Check existence of required environment variables : OK"
|
320
|
-
#
|
323
|
+
#
|
321
324
|
# display "Check consistency between environment variables and Astroboa Server Settings File #{get_server_conf_file} ", false
|
322
325
|
# error "#{problem_message} Missmatch of Astroboa installation dir in environmet variable 'ASTROBOA_HOME' (#{ENV['ASTROBOA_HOME']}) and server settings (#{server_config['install_dir']})" unless server_config['install_dir'] == ENV['ASTROBOA_HOME']
|
323
326
|
# error "#{problem_message} Missmatch of repositories dir in environmet variable 'ASTROBOA_REPOSITORIES_HOME' (#{ENV['ASTROBOA_REPOSITORIES_HOME']}) and server config settings (#{server_config['repos_dir']})" unless server_config['repos_dir'] == ENV['ASTROBOA_REPOSITORIES_HOME']
|
324
327
|
# error "#{problem_message} The mandatory repository 'identities' is not configured in server settings. Use the command 'repository:create identities' to create it." unless repository_in_server_config?(server_config, 'identities')
|
325
328
|
# display ": OK"
|
326
329
|
# end
|
327
|
-
|
330
|
+
|
328
331
|
ok_message = "Astroboa installaion is ok.\nInstallation Path: #{server_config['install_dir']}\nRepository configuration and data are stored in: #{server_config['repos_dir']}"
|
329
332
|
display ok_message
|
330
333
|
end
|
331
|
-
|
332
|
-
|
334
|
+
|
335
|
+
|
333
336
|
def java_ok?
|
334
337
|
error('Please install java 6 (version 1.6.x) or java 7 (version 1.7.x) to proceed with installation') unless has_executable_with_version("java", "1\\.6|7", '-version')
|
335
338
|
end
|
336
|
-
|
337
|
-
|
339
|
+
|
340
|
+
|
338
341
|
def check_if_wget_is_installed
|
339
342
|
error('Some files need to be downloaded. Please install \'wget\' and run the installation again') unless has_executable("wget")
|
340
343
|
end
|
341
|
-
|
342
|
-
|
344
|
+
|
345
|
+
|
343
346
|
def check_if_unzip_is_installed
|
344
347
|
error('Some archives need to be unzipped. Please install \'unzip\' and run the installation again') unless has_executable("unzip")
|
345
348
|
end
|
346
|
-
|
347
|
-
|
349
|
+
|
350
|
+
|
348
351
|
def download_server_components
|
349
352
|
# create installation directory
|
350
353
|
begin
|
@@ -352,29 +355,40 @@ private
|
|
352
355
|
rescue SystemCallError => e
|
353
356
|
error "Failed to create installation directory '#{@install_dir}' \n the Error is: #{e.message}"
|
354
357
|
end
|
355
|
-
|
358
|
+
|
356
359
|
display "Dowloading astroboa server components to #{@install_dir}"
|
357
|
-
|
358
|
-
# download
|
359
|
-
download_package(@
|
360
|
-
|
360
|
+
|
361
|
+
# download astroboa version file
|
362
|
+
download_package(@astroboa_version_download_url, @install_dir)
|
363
|
+
|
361
364
|
# download torquebox version file
|
362
|
-
download_package(@torquebox_version_download_url, @install_dir)
|
363
|
-
|
365
|
+
download_package(@torquebox_version_download_url, @install_dir)
|
366
|
+
|
367
|
+
torquebox_file_size = getFileSizeFromVersionFile(@torquebox_version_download_url.split('/').last)
|
368
|
+
already_saved_torquebox_file_size = File.size?(File.join(@install_dir, @torquebox_package))
|
369
|
+
astroboa_file_size = getFileSizeFromVersionFile(@astroboa_version_download_url.split('/').last)
|
370
|
+
already_saved_astroboa_file_size = File.size?(File.join(@install_dir, @astroboa_ear_package))
|
371
|
+
|
372
|
+
# download torquebox
|
373
|
+
download_package(@torquebox_download_url, @install_dir) unless already_saved_torquebox_file_size == torquebox_file_size
|
374
|
+
|
364
375
|
# download astroboa ear
|
365
|
-
download_package(@astroboa_ear_download_url, @install_dir) unless
|
366
|
-
|
367
|
-
# download astroboa version file
|
368
|
-
download_package(@astroboa_version_download_url, @install_dir) unless File.size?(File.join(@install_dir, @astroboa_version_file)) == 15
|
369
|
-
|
376
|
+
download_package(@astroboa_ear_download_url, @install_dir) unless already_saved_astroboa_file_size == astroboa_file_size
|
377
|
+
|
370
378
|
# download astroboa setup templates
|
371
|
-
download_package(@astroboa_setup_templates_download_url, @install_dir)
|
372
|
-
|
379
|
+
download_package(@astroboa_setup_templates_download_url, @install_dir)
|
380
|
+
|
373
381
|
# download astroboa schemas
|
374
|
-
download_package(@schemas_download_url, @install_dir)
|
382
|
+
download_package(@schemas_download_url, @install_dir)
|
375
383
|
end
|
376
|
-
|
377
|
-
|
384
|
+
|
385
|
+
def getFileSizeFromVersionFile(file_name)
|
386
|
+
File.open(File.join(@install_dir, file_name)).each do |line|
|
387
|
+
return line.split(",").last.to_i
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
|
378
392
|
def download_package_with_wget(package_url, install_dir)
|
379
393
|
command = %(bash -c 'wget -c --directory-prefix=#{install_dir} #{package_url} 2>>#{log_file}')
|
380
394
|
package = package_url.split('/').last
|
@@ -382,14 +396,14 @@ private
|
|
382
396
|
display "Downloading #{package}"
|
383
397
|
error "Failed to download package '#{package}'. Check logfile #{log_file}" unless process_os_command command
|
384
398
|
end
|
385
|
-
|
386
|
-
|
399
|
+
|
400
|
+
|
387
401
|
def download_package(package_url, install_dir)
|
388
402
|
package_uri = URI.parse package_url
|
389
403
|
package = package_url.split('/').last
|
390
404
|
file = File.join install_dir, package
|
391
405
|
display "Downloading #{package} from #{package_uri.host} to #{file}"
|
392
|
-
|
406
|
+
|
393
407
|
Net::HTTP.start package_uri.host, package_uri.port do |http|
|
394
408
|
bytesDownloaded = 0
|
395
409
|
http.request Net::HTTP::Get.new(package_uri.path) do |response|
|
@@ -408,19 +422,19 @@ private
|
|
408
422
|
end
|
409
423
|
end
|
410
424
|
end
|
411
|
-
|
425
|
+
|
412
426
|
log.info "#{package} downloaded successfully"
|
413
427
|
end
|
414
|
-
|
415
|
-
|
428
|
+
|
429
|
+
|
416
430
|
def install_server_components
|
417
431
|
create_astroboa_user
|
418
432
|
display "Installing server components to #{@install_dir}"
|
419
433
|
install_torquebox
|
420
434
|
install_astroboa
|
421
435
|
end
|
422
|
-
|
423
|
-
|
436
|
+
|
437
|
+
|
424
438
|
def create_astroboa_user
|
425
439
|
# in mac os x we do not create a separate user
|
426
440
|
user = 'astroboa'
|
@@ -432,26 +446,26 @@ private
|
|
432
446
|
error "Failed to create user astroboa. Check logfile #{log_file}" unless process_os_command command
|
433
447
|
end
|
434
448
|
end
|
435
|
-
|
436
|
-
|
449
|
+
|
450
|
+
|
437
451
|
def install_torquebox
|
438
452
|
unzip_torquebox
|
439
453
|
# we cannot use the ruby lib to unzip since it does not preserve file permissions
|
440
454
|
#unzip_file(File.join(@install_dir, @torquebox_package), @install_dir)
|
441
455
|
create_torquebox_symbolic_link
|
442
|
-
|
456
|
+
|
443
457
|
# may be that we do not need this any more
|
444
458
|
# add_torquebox_env_settings
|
445
459
|
end
|
446
|
-
|
447
|
-
|
460
|
+
|
461
|
+
|
448
462
|
def unzip_torquebox
|
449
463
|
command = %(bash -c 'cd #{@install_dir} && #{extract_archive_command @torquebox_package} #{File.join(@install_dir, @torquebox_package)} 2>>#{log_file}')
|
450
464
|
log.info "Installing torquebox with command: #{command}"
|
451
465
|
error "Failed to install torquebox" unless process_os_command command
|
452
466
|
end
|
453
|
-
|
454
|
-
|
467
|
+
|
468
|
+
|
455
469
|
def create_torquebox_symbolic_link
|
456
470
|
# create a symbolic link from the versioned directory to which torquebox was extracted (e.g. torquebox-2.0.cr1) to just 'torquebox'
|
457
471
|
# we need this in order to create the required export paths once instead of recreating them each time torquebox is upgrated
|
@@ -463,13 +477,13 @@ private
|
|
463
477
|
error %(Failed to create symbolic link from '#{File.join(@install_dir, torquebox_dir)}' to '#{File.join(@install_dir, "torquebox")}' \n the Error is: #{e.message})
|
464
478
|
end
|
465
479
|
end
|
466
|
-
|
467
|
-
|
480
|
+
|
481
|
+
|
468
482
|
def add_torquebox_env_settings
|
469
483
|
# add required environment settings to .bash_profile
|
470
484
|
user_dir = File.expand_path("~astroboa") if linux?
|
471
485
|
user_dir = ENV["HOME"] if mac_os_x?
|
472
|
-
|
486
|
+
|
473
487
|
display "Adding required environment settings in #{user_dir}/.bash_profile"
|
474
488
|
bash_profile_path = File.join(user_dir, ".bash_profile")
|
475
489
|
settings_start_here_comment = '# ASTROBOA REQUIRED PATHS CONFIGURATION STARTS HERE'
|
@@ -477,7 +491,7 @@ private
|
|
477
491
|
# remove any previous settings
|
478
492
|
delete_file_content_between_regex(bash_profile_path, settings_start_here_comment, settings_end_here_comment) if File.exists? bash_profile_path
|
479
493
|
# write the new settings
|
480
|
-
File.open(bash_profile_path, 'a+') do |f|
|
494
|
+
File.open(bash_profile_path, 'a+') do |f|
|
481
495
|
env_settings =<<SETTINGS
|
482
496
|
|
483
497
|
#{settings_start_here_comment}
|
@@ -488,43 +502,43 @@ export JBOSS_HOME=$TORQUEBOX_HOME/jboss
|
|
488
502
|
#{"export PATH=$JRUBY_HOME/bin:$PATH" if linux?}
|
489
503
|
#{settings_end_here_comment}
|
490
504
|
SETTINGS
|
491
|
-
|
505
|
+
|
492
506
|
f.write env_settings
|
493
507
|
end
|
494
508
|
end
|
495
|
-
|
496
|
-
|
509
|
+
|
510
|
+
|
497
511
|
def unzip_schemas
|
498
512
|
unzip_file(File.join(@install_dir, @schemas_package), @install_dir)
|
499
513
|
end
|
500
|
-
|
501
|
-
|
514
|
+
|
515
|
+
|
502
516
|
def install_astroboa
|
503
517
|
# unzip the templates first
|
504
518
|
unzip_file(File.join(@install_dir, @astroboa_setup_templates_package), @install_dir)
|
505
|
-
|
519
|
+
|
506
520
|
# unzip astroboa schemas that are used for user schema validation
|
507
521
|
unzip_schemas
|
508
|
-
|
522
|
+
|
509
523
|
jboss_dir = File.join(@install_dir, "torquebox", "jboss")
|
510
524
|
jboss_modules_dir = File.join(jboss_dir, "modules")
|
511
525
|
astroboa_setup_templates_dir = File.join(@install_dir, "astroboa-setup-templates")
|
512
|
-
|
526
|
+
|
513
527
|
create_repo_dir
|
514
|
-
|
528
|
+
|
515
529
|
install_astroboa_ear(jboss_dir)
|
516
|
-
|
530
|
+
|
517
531
|
install_jdbc_modules(astroboa_setup_templates_dir, jboss_modules_dir)
|
518
532
|
|
519
533
|
install_spring_modules(astroboa_setup_templates_dir, jboss_modules_dir)
|
520
|
-
|
534
|
+
|
521
535
|
install_jboss_runtime_config(astroboa_setup_templates_dir, jboss_dir)
|
522
|
-
|
536
|
+
|
523
537
|
install_jboss_config(astroboa_setup_templates_dir, jboss_dir)
|
524
|
-
|
538
|
+
|
525
539
|
end
|
526
|
-
|
527
|
-
|
540
|
+
|
541
|
+
|
528
542
|
def create_repo_dir
|
529
543
|
# create directory for repository data and astroboa repositories configuration file
|
530
544
|
begin
|
@@ -534,14 +548,14 @@ SETTINGS
|
|
534
548
|
error "Failed to create repositories directory '#{@repo_dir}' \n the Error is: #{e.message}"
|
535
549
|
end
|
536
550
|
end
|
537
|
-
|
538
|
-
|
551
|
+
|
552
|
+
|
539
553
|
def install_astroboa_ear(jboss_dir)
|
540
554
|
FileUtils.cp File.join(@install_dir, @astroboa_ear_package), File.join(jboss_dir, "standalone", "deployments")
|
541
555
|
display "Copying astroboa ear package into jboss deployments: OK"
|
542
556
|
end
|
543
|
-
|
544
|
-
|
557
|
+
|
558
|
+
|
545
559
|
def install_jdbc_modules(astroboa_setup_templates_dir, jboss_modules_dir)
|
546
560
|
# copy both derby and postgres jdbc driver module
|
547
561
|
# This is required since both derby and postgres modules have been specified as dependencies of astroboa.ear module
|
@@ -549,30 +563,30 @@ SETTINGS
|
|
549
563
|
display "Copying derby jdbc driver module into jboss modules #{("(derby module is installed even if postgres has been selected)" unless @database == 'derby')}: OK"
|
550
564
|
# copy postgres driver
|
551
565
|
# if postgres has been specified in options then install the drivers for the specified version
|
552
|
-
# else install drivers for postgres 9.
|
566
|
+
# else install drivers for postgres 9.3
|
553
567
|
postgres_db = @database
|
554
|
-
postgres_db = 'postgres-9.
|
568
|
+
postgres_db = 'postgres-9.3' if @database == 'derby'
|
555
569
|
FileUtils.cp_r File.join(astroboa_setup_templates_dir, "jdbc-drivers", postgres_db, "org"), jboss_modules_dir
|
556
570
|
display %(Copying #{postgres_db} jdbc driver module into jboss modules #{("(postgres drivers are copied even if derby has been selected)" if @database == 'derby')}: OK)
|
557
571
|
end
|
558
|
-
|
559
|
-
|
572
|
+
|
573
|
+
|
560
574
|
def install_spring_modules(astroboa_setup_templates_dir, jboss_modules_dir)
|
561
575
|
# copy spring and snowdrop modules to jboss modules
|
562
576
|
FileUtils.cp_r File.join(astroboa_setup_templates_dir, "jboss-modules", "org"), jboss_modules_dir
|
563
|
-
display "Copying spring and snowdrop modules into jboss modules: OK"
|
577
|
+
display "Copying spring and snowdrop modules into jboss modules: OK"
|
564
578
|
end
|
565
|
-
|
566
|
-
|
579
|
+
|
580
|
+
|
567
581
|
def install_jboss_runtime_config(astroboa_setup_templates_dir, jboss_dir)
|
568
582
|
# preserve original jboss runtime config and copy customized runtime config into jboss bin directory
|
569
583
|
original_runtime_config = File.join(jboss_dir, "bin", "standalone.conf")
|
570
584
|
FileUtils.cp original_runtime_config, "#{original_runtime_config}.original"
|
571
585
|
FileUtils.cp File.join(astroboa_setup_templates_dir, "standalone.conf"), original_runtime_config
|
572
|
-
display "Copying jboss runtime config into jboss bin: OK"
|
586
|
+
display "Copying jboss runtime config into jboss bin: OK"
|
573
587
|
end
|
574
|
-
|
575
|
-
|
588
|
+
|
589
|
+
|
576
590
|
def install_jboss_config(astroboa_setup_templates_dir, jboss_dir)
|
577
591
|
# create jboss config from template and write it to jboss standalone configuration directory, preserving the original file
|
578
592
|
original_jboss_config = File.join(jboss_dir, "standalone", "configuration", "standalone.xml")
|
@@ -582,24 +596,24 @@ SETTINGS
|
|
582
596
|
render_template_to_file(jboss_config_template, context, original_jboss_config)
|
583
597
|
display "Generating and copying jboss config into jboss standalone configuration directory: OK"
|
584
598
|
end
|
585
|
-
|
586
|
-
|
599
|
+
|
600
|
+
|
587
601
|
# currently not used - consider to remove
|
588
602
|
def create_pgpass_file
|
589
603
|
if @database.split("-").first == "postgres"
|
590
604
|
pgpass_file = File.expand_path(File.join("~",".pgpass"))
|
591
605
|
pgpass_file = File.expand_path(File.join("~astroboa",".pgpass")) unless RbConfig::CONFIG['host_os'] =~ /darwin/i
|
592
|
-
|
606
|
+
|
593
607
|
pgpass_config = "localhost:5432:*:#{@database_admin}:#{@database_admin_password}"
|
594
|
-
|
608
|
+
|
595
609
|
File.open(pgpass_file,"w") do |f|
|
596
610
|
f.write(pgpass_config)
|
597
611
|
end
|
598
612
|
display "The file '#{pgpass_file}' has been created to give astroboa user permission to run postgres admin commands"
|
599
613
|
end
|
600
614
|
end
|
601
|
-
|
602
|
-
|
615
|
+
|
616
|
+
|
603
617
|
def save_server_configuration
|
604
618
|
config_file = File.expand_path(File.join('~', '.astroboa-conf.yml'))
|
605
619
|
unless RbConfig::CONFIG['host_os'] =~ /darwin/i
|
@@ -614,18 +628,18 @@ SETTINGS
|
|
614
628
|
server_config['database_admin'] = @database_admin
|
615
629
|
server_config['database_admin_password'] = @database_admin_password
|
616
630
|
server_config['database_server'] = @database_server
|
617
|
-
|
631
|
+
|
618
632
|
File.open(config_file,"w") do |f|
|
619
633
|
f.write(YAML.dump(server_config))
|
620
634
|
end
|
621
635
|
display "The server configuration have been added to configuration file '#{config_file}'"
|
622
|
-
|
636
|
+
|
623
637
|
# config file has sensitive info like the db admin password
|
624
638
|
# let's protect it from reading by others
|
625
639
|
FileUtils.chmod 0600, config_file
|
626
640
|
end
|
627
|
-
|
628
|
-
|
641
|
+
|
642
|
+
|
629
643
|
def create_central_identity_repository
|
630
644
|
repo_name = 'identities'
|
631
645
|
repo_config = {
|
@@ -634,57 +648,57 @@ SETTINGS
|
|
634
648
|
AstroboaCLI::Command::Repository.new([repo_name], repo_config).create
|
635
649
|
display "Create Central 'Identities and Apps' Repository with name 'identities' : OK"
|
636
650
|
end
|
637
|
-
|
651
|
+
|
638
652
|
def set_astroboa_owner
|
639
|
-
# In mac os x astroboa is installed and run under the ownership of the user that runs the installation command.
|
653
|
+
# In mac os x astroboa is installed and run under the ownership of the user that runs the installation command.
|
640
654
|
# If installation is done with sudo (i.e. when installation dir is not in users home) then we need to change the ownership of astroboa installation to the current user.
|
641
655
|
if mac_os_x? && running_with_sudo?
|
642
656
|
user = ENV['USER']
|
643
657
|
FileUtils.chown_R(user, nil, @install_dir)
|
644
658
|
display "Change (recursively) user owner of #{@install_dir} to #{user}: OK"
|
645
|
-
|
659
|
+
|
646
660
|
# if repositories dir is outside the main install dir then we should change the ownership there too
|
647
661
|
unless File.join(@install_dir, 'repositories') == @repo_dir
|
648
662
|
FileUtils.chown_R(user, nil, @repo_dir)
|
649
663
|
display "Change (recursively) user owner of #{@repo_dir} to #{user}: OK"
|
650
664
|
end
|
651
|
-
|
665
|
+
|
652
666
|
end
|
653
|
-
|
667
|
+
|
654
668
|
# In linux a special user 'astroboa' and group 'astroboa' is created for owning a running astroboa.
|
655
669
|
# So we need to change the ownership of the installation dir and the repositories dir to belong to user 'astroboa' and group 'astroboa'
|
656
670
|
if linux?
|
657
|
-
|
671
|
+
|
658
672
|
FileUtils.chown_R('astroboa', 'astroboa', @install_dir)
|
659
673
|
display "Change (recursively) user and group owner of #{@install_dir} to 'astroboa': OK"
|
660
|
-
|
674
|
+
|
661
675
|
# if repositories dir is outside the main install dir then we should change the ownership there too
|
662
676
|
unless File.join(@install_dir, 'repositories') == @repo_dir
|
663
677
|
FileUtils.chown_R('astroboa', 'astroboa', @repo_dir)
|
664
678
|
display "Change (recursively) user and group owner of #{@repo_dir} to 'astroboa': OK"
|
665
679
|
end
|
666
|
-
|
680
|
+
|
667
681
|
end
|
668
682
|
end
|
669
|
-
|
683
|
+
|
670
684
|
def cleanup_installation
|
671
685
|
display "Cleaning not required Installation packages..."
|
672
686
|
FileUtils.rm File.join(@install_dir, @torquebox_package)
|
673
687
|
display "Removed torquebox package"
|
674
|
-
|
688
|
+
|
675
689
|
FileUtils.rm File.join(@install_dir, @astroboa_ear_package)
|
676
690
|
display "Removed astroboa ear package"
|
677
|
-
|
691
|
+
|
678
692
|
FileUtils.rm File.join(@install_dir, @astroboa_setup_templates_package)
|
679
693
|
display "Removed setup templates package"
|
680
|
-
|
694
|
+
|
681
695
|
FileUtils.rm File.join(@install_dir, @schemas_package)
|
682
696
|
display "Removed schemas package"
|
683
|
-
|
697
|
+
|
684
698
|
display "Installation cleanup: OK"
|
685
699
|
end
|
686
700
|
|
687
701
|
end
|
688
|
-
|
689
|
-
|
690
|
-
|
702
|
+
|
703
|
+
|
704
|
+
|
data/lib/astroboa-cli/util.rb
CHANGED
@@ -353,7 +353,7 @@ module AstroboaCLI
|
|
353
353
|
|
354
354
|
ruby_version_numbers = RUBY_VERSION.split(".")
|
355
355
|
|
356
|
-
return false unless ruby_version_numbers[0].to_i == 1 && ruby_version_numbers[1].to_i >= 9
|
356
|
+
return false unless (ruby_version_numbers[0].to_i == 1 && ruby_version_numbers[1].to_i >= 9) || ruby_version_numbers[0].to_i == 2
|
357
357
|
return true
|
358
358
|
end
|
359
359
|
|
@@ -369,19 +369,19 @@ module AstroboaCLI
|
|
369
369
|
$ brew install rbenv
|
370
370
|
$ brew install ruby-build
|
371
371
|
|
372
|
-
To install ruby version 1.
|
373
|
-
$ rbenv install 1.
|
372
|
+
To install ruby version 2.1.1 do:
|
373
|
+
$ rbenv install 2.1.1
|
374
374
|
|
375
375
|
To set the global version of Ruby to be used in all your shells do:
|
376
|
-
$ rbenv global 1.
|
376
|
+
$ rbenv global 2.1.1
|
377
377
|
|
378
|
-
To set ruby 1.
|
378
|
+
To set ruby 2.1.1 as a local per-project ruby version by writing the version name to an .rbenv-version file in the current directory do:
|
379
379
|
|
380
|
-
$ rbenv local 1.
|
380
|
+
$ rbenv local 2.1.1
|
381
381
|
|
382
|
-
To set ruby 1.
|
382
|
+
To set ruby 2.1.1 as the version to be used only in the current shell (sets the RBENV_VERSION environment variable in your shell) do:
|
383
383
|
|
384
|
-
$ rbenv shell 1.
|
384
|
+
$ rbenv shell 2.1.1
|
385
385
|
|
386
386
|
-------------------------------
|
387
387
|
If you prefer to use 'rvm' as your ruby management utility use the following command to install it for a single user:
|
@@ -390,15 +390,15 @@ module AstroboaCLI
|
|
390
390
|
|
391
391
|
For multi-user installation and detailed rvm installation instructions check: https://rvm.io/rvm/install/
|
392
392
|
|
393
|
-
After 'rvm' has been installed run the following commands to install ruby 1.
|
394
|
-
rvm install 1.
|
395
|
-
rvm use 1.
|
393
|
+
After 'rvm' has been installed run the following commands to install ruby 2.1.1:
|
394
|
+
rvm install 2.1.1
|
395
|
+
rvm use 2.1.1
|
396
396
|
RUBY_INSTALL_MESSAGE
|
397
397
|
|
398
398
|
ruby_wrong_version_message =<<-RUBY_VERSION_MESSAGE
|
399
|
-
It seems that you are not running ruby 1.9.x.
|
399
|
+
It seems that you are not running ruby 1.9.x. or later
|
400
400
|
Your current Ruby Version is: #{RUBY_VERSION}
|
401
|
-
Astroboa CLI requires your ruby version to be 1.9.x (e.g. 1.9.2 or 1.9.3).
|
401
|
+
Astroboa CLI requires your ruby version to be 1.9.x or later (e.g. 1.9.2 or 1.9.3 or 2.1.1).
|
402
402
|
|
403
403
|
#{ruby_installation_instructions_message}
|
404
404
|
RUBY_VERSION_MESSAGE
|
data/lib/astroboa-cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: astroboa-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
- BETACONCEPT
|
9
8
|
- Gregory Chomatas
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2015-11-07 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: progressbar
|
@@ -92,10 +91,26 @@ dependencies:
|
|
92
91
|
- - ! '>='
|
93
92
|
- !ruby/object:Gem::Version
|
94
93
|
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: zip-zip
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
95
110
|
description: astroboa-cli provides commands for installing astroboa platform, creating
|
96
111
|
repositories, taking backups, deploying applications to astroboa, etc.
|
97
112
|
email:
|
98
|
-
-
|
113
|
+
- gchomatas@betaconcept.com
|
99
114
|
executables:
|
100
115
|
- astroboa-cli
|
101
116
|
extensions: []
|
@@ -139,12 +154,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
139
154
|
- - ! '>='
|
140
155
|
- !ruby/object:Gem::Version
|
141
156
|
version: '0'
|
157
|
+
segments:
|
158
|
+
- 0
|
159
|
+
hash: -4227649006817969992
|
142
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
161
|
none: false
|
144
162
|
requirements:
|
145
163
|
- - ! '>='
|
146
164
|
- !ruby/object:Gem::Version
|
147
165
|
version: '0'
|
166
|
+
segments:
|
167
|
+
- 0
|
168
|
+
hash: -4227649006817969992
|
148
169
|
requirements: []
|
149
170
|
rubyforge_project: astroboa-cli
|
150
171
|
rubygems_version: 1.8.23
|