hive-runner 2.1.11 → 2.1.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/hive_setup +162 -9
- data/bin/start_hive +7 -0
- data/lib/hive/file_system.rb +5 -1
- metadata +19 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abe451df28b200455681ed819de8683bc2b022c1
|
4
|
+
data.tar.gz: 0f14a25e38f20b79bc769af6f1e8822ac33d817a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c793b5aff267ae40343d190381e5f7592d788a58f4301f17f5833e7ccab35d292c560dd737792f9616573702e20b93cbcba832a5105428ebb1a7b4a87c501b03
|
7
|
+
data.tar.gz: 12a30f507e0ec2140f987f5682aafbc461004268f08f5f343754a6a80c881dcd5068b907ac58ffaceead3d7a35ca0fde92921e85e3e2e24a2bd902616d22e157
|
data/bin/hive_setup
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'optparse'
|
4
4
|
require 'fileutils'
|
5
5
|
require 'terminal-table'
|
6
|
+
require 'etc'
|
6
7
|
|
7
8
|
if ARGV.length < 1
|
8
9
|
puts "Usage:"
|
@@ -36,10 +37,69 @@ def yn question
|
|
36
37
|
yn =~ /^[yY]/
|
37
38
|
end
|
38
39
|
|
39
|
-
def
|
40
|
+
def os
|
41
|
+
if /mswin/ =~ RUBY_PLATFORM
|
42
|
+
'Windows'
|
43
|
+
elsif /darwin/ =~ RUBY_PLATFORM
|
44
|
+
'Mac'
|
45
|
+
elsif /linux/ =~ RUBY_PLATFORM
|
46
|
+
'Linux'
|
47
|
+
else
|
48
|
+
'Unknown'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def find_ruby use_default = false
|
53
|
+
ruby_versions = []
|
54
|
+
|
55
|
+
manager = nil
|
56
|
+
if system("which rvm > /dev/null 2> /dev/null")
|
57
|
+
list = `rvm list`.split /\n/
|
58
|
+
match = /^.(.).(ruby-\S+)/
|
59
|
+
elsif system("which rbenv > /dev/null 2> /dev/null")
|
60
|
+
list = `rbenv versions`.split /\n/
|
61
|
+
match = /^(.).(\S+)/
|
62
|
+
else
|
63
|
+
return ['system', 1]
|
64
|
+
end
|
65
|
+
|
66
|
+
version_table = Terminal::Table.new headings: ['#', 'Version', '']
|
67
|
+
default = nil
|
68
|
+
list.each do |line|
|
69
|
+
if line =~ match
|
70
|
+
default = ruby_versions.length if $1 == '*'
|
71
|
+
ruby_versions << $2
|
72
|
+
version_table.add_row [ ruby_versions.length, $2, $1 == '*' ? 'Default' : '' ]
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
if ruby_versions.length == 0
|
77
|
+
[ 'system', 0 ]
|
78
|
+
elsif ruby_versions.length == 1
|
79
|
+
[ ruby_versions[0], 1 ]
|
80
|
+
elsif use_default && ! default.nil?
|
81
|
+
[ ruby_versions[default], ruby_versions.length ]
|
82
|
+
else
|
83
|
+
puts
|
84
|
+
puts 'Multiple ruby versions available:'
|
85
|
+
puts version_table
|
86
|
+
puts ''
|
87
|
+
opt = -1
|
88
|
+
while opt <= 0 || opt > ruby_versions.length
|
89
|
+
print "[1 - #{ruby_versions.length}] > "
|
90
|
+
opt = STDIN.gets.chomp.to_i
|
91
|
+
end
|
92
|
+
[ ruby_versions[opt-1], ruby_versions.length ]
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def gather_options
|
40
97
|
# Choose options
|
41
98
|
opt = ''
|
42
99
|
mods = []
|
100
|
+
ruby, nrubies = find_ruby true
|
101
|
+
daemons = ( os != 'Unknown' )
|
102
|
+
|
43
103
|
while opt.upcase != 'X'
|
44
104
|
table = Terminal::Table.new headings: ['Device', 'Module', 'Source']
|
45
105
|
mods.each do |mod|
|
@@ -54,8 +114,17 @@ def add_modules
|
|
54
114
|
|
55
115
|
puts ''
|
56
116
|
puts table
|
117
|
+
puts "Operating System: #{os}"
|
118
|
+
puts "Set up daemon script: #{daemons ? 'Yes (requires admin access)' : 'No'}"
|
119
|
+
print "Ruby version: #{ruby}"
|
120
|
+
print " (#{nrubies} versions available)" if nrubies > 1
|
121
|
+
puts ''
|
57
122
|
puts ''
|
58
123
|
puts '1) Add module'
|
124
|
+
puts '2) Change ruby version'
|
125
|
+
if os != 'Unknown'
|
126
|
+
puts "3) #{ daemons ? 'Do not s' : 'S'}et up daemon script"
|
127
|
+
end
|
59
128
|
puts 'X) Continue'
|
60
129
|
puts ''
|
61
130
|
print "> "
|
@@ -74,13 +143,26 @@ def add_modules
|
|
74
143
|
if yn "Correct? "
|
75
144
|
mods << mod
|
76
145
|
end
|
146
|
+
when '2'
|
147
|
+
ruby, nrubies = find_ruby
|
148
|
+
when '3'
|
149
|
+
daemons = ! daemons if os != 'Unknown'
|
77
150
|
end
|
78
151
|
end
|
79
152
|
|
80
|
-
|
153
|
+
{
|
154
|
+
mods: mods,
|
155
|
+
daemons: daemons,
|
156
|
+
ruby: ruby
|
157
|
+
}
|
81
158
|
end
|
82
159
|
|
83
|
-
def setup_hive(
|
160
|
+
def setup_hive(options)
|
161
|
+
dir = options[:dir]
|
162
|
+
mods = options[:mods]
|
163
|
+
daemons = options[:daemons]
|
164
|
+
ruby = options[:ruby] || 'system'
|
165
|
+
|
84
166
|
FileUtils.mkdir_p("#{dir}/config")
|
85
167
|
FileUtils.mkdir_p("#{dir}/log")
|
86
168
|
FileUtils.mkdir_p("#{dir}/pids")
|
@@ -137,6 +219,9 @@ def setup_hive(dir, mods)
|
|
137
219
|
f.puts ''
|
138
220
|
f.puts ' # Configuration for diagnostic plugins'
|
139
221
|
f.puts ' diagnostics:'
|
222
|
+
f.puts ' hive:'
|
223
|
+
f.puts ' load_warning: 0.7'
|
224
|
+
f.puts ' load_error: 1.5'
|
140
225
|
end
|
141
226
|
|
142
227
|
File.open("#{dir}/Gemfile", 'w') do |f|
|
@@ -149,11 +234,65 @@ def setup_hive(dir, mods)
|
|
149
234
|
end
|
150
235
|
end
|
151
236
|
|
237
|
+
puts '=========================='
|
238
|
+
print "Setting ruby ... "
|
239
|
+
File.open("#{dir}/.ruby-version", 'w') do |rv|
|
240
|
+
rv.write ruby
|
241
|
+
end
|
242
|
+
print "SUCCESS\n"
|
243
|
+
|
244
|
+
print "Creating daemon startup script..."
|
245
|
+
if os == 'Linux'
|
246
|
+
startup_script = "#{dir}/hived.init"
|
247
|
+
config_file = "#{dir}/hived.conf"
|
248
|
+
write_logs = '> $LOG_DIRECTORY/hived.out 2> $LOG_DIRECTORY/hived.err'
|
249
|
+
File.open("#{dir}/start_hive.sh", 'w', 0755) do |f|
|
250
|
+
f.write "#!/bin/bash -li\n"
|
251
|
+
|
252
|
+
f.write "if [ -f /etc/hived.conf ]\n"
|
253
|
+
f.write "then\n"
|
254
|
+
f.write " . /etc/hived.conf\n"
|
255
|
+
f.write "else\n"
|
256
|
+
f.write " . #{config_file}\n"
|
257
|
+
f.write "fi\n"
|
258
|
+
|
259
|
+
f.write "cd $HIVE_HOME #{write_logs}\n"
|
260
|
+
f.write "start_hive -p $PIDFILE #{write_logs} &\n"
|
261
|
+
f.write "echo $!\n"
|
262
|
+
end
|
263
|
+
|
264
|
+
FileUtils.cp(File.expand_path('../init.d.hived', __FILE__), startup_script)
|
265
|
+
|
266
|
+
File.open(config_file, 'w') do |conf|
|
267
|
+
conf.write "HIVE_HOME=#{dir}\n"
|
268
|
+
conf.write "USER=#{Etc.getlogin}\n"
|
269
|
+
conf.write "LOG_DIRECTORY=#{dir}/log\n"
|
270
|
+
conf.write "PIDFILE=#{dir}/hived.pid\n"
|
271
|
+
end
|
272
|
+
print "SUCCESS\n"
|
273
|
+
|
274
|
+
print "Moving daemon startup script... "
|
275
|
+
if daemons
|
276
|
+
if system("sudo cp #{startup_script} /etc/init.d/hived") && system("sudo chmod 755 /etc/init.d/hived") && system("sudo cp #{config_file} /etc/hived.conf")
|
277
|
+
print "SUCCESS\n"
|
278
|
+
else
|
279
|
+
daemons = false
|
280
|
+
print "FAILED\n"
|
281
|
+
end
|
282
|
+
else
|
283
|
+
print "SKIPPED\n"
|
284
|
+
end
|
285
|
+
else
|
286
|
+
startup_script = '??'
|
287
|
+
daemons = false
|
288
|
+
print "FAILED\n"
|
289
|
+
puts " Cannot set up daemons for '#{os}'"
|
290
|
+
end
|
291
|
+
|
152
292
|
print "Executing 'bundle install' ... "
|
153
|
-
|
154
|
-
if system("bundle install > bundle_install.out 2>&1")
|
293
|
+
if system("bash -l -c 'cd #{dir}; gem install bundler; bundle install' > #{dir}/bundle_install.out 2>&1")
|
155
294
|
print "SUCCESS\n"
|
156
|
-
File.delete(
|
295
|
+
File.delete("#{dir}/bundle_install.out")
|
157
296
|
else
|
158
297
|
print "FAILED\n"
|
159
298
|
puts "See #{dir}/bundle_install.out for details"
|
@@ -176,8 +315,22 @@ def setup_hive(dir, mods)
|
|
176
315
|
end
|
177
316
|
puts ' * Add to ~/.bashrc'
|
178
317
|
puts " - export HIVE_CONFIG=#{dir}/config"
|
318
|
+
if ! daemons
|
319
|
+
puts ' * Move daemons startup script to correct location'
|
320
|
+
puts " - File currently at '#{startup_script}'"
|
321
|
+
end
|
179
322
|
end
|
180
323
|
|
181
|
-
|
182
|
-
|
183
|
-
|
324
|
+
if headless
|
325
|
+
options = {
|
326
|
+
mods: [],
|
327
|
+
daemons: ( os != 'Unknown' )
|
328
|
+
}
|
329
|
+
options[:ruby], nrubies = find_ruby true
|
330
|
+
else
|
331
|
+
options = gather_options unless headless
|
332
|
+
end
|
333
|
+
|
334
|
+
options[:dir] = dir
|
335
|
+
|
336
|
+
setup_hive options
|
data/bin/start_hive
CHANGED
@@ -12,9 +12,16 @@ $LOAD_PATH << File.expand_path('../../lib', __FILE__)
|
|
12
12
|
require 'socket'
|
13
13
|
require 'terminal-table'
|
14
14
|
require 'hive'
|
15
|
+
require 'optparse'
|
15
16
|
|
16
17
|
$PROGRAM_NAME = Hive::DAEMON_NAME
|
17
18
|
|
19
|
+
OptionParser.new do |opts|
|
20
|
+
opts.on('-p', '--pidfile PIDFILE', 'PID file') do |pid|
|
21
|
+
File.write(pid, Process.pid)
|
22
|
+
end
|
23
|
+
end.parse!
|
24
|
+
|
18
25
|
# Version information
|
19
26
|
gems = {}
|
20
27
|
Gem::Specification.all.select{ |g| g.name =~ /hive-*/ }.each do |g|
|
data/lib/hive/file_system.rb
CHANGED
@@ -56,10 +56,14 @@ module Hive
|
|
56
56
|
|
57
57
|
def check_build_integrity( destination_path )
|
58
58
|
output = `file #{destination_path}`
|
59
|
-
if output =~ /
|
59
|
+
if output =~ /\s[Zz]ip\s/
|
60
60
|
result = `zip -T #{destination_path}`
|
61
61
|
@log.info(result)
|
62
62
|
$? == 0
|
63
|
+
elsif output =~ /\sgzip\s/
|
64
|
+
result = `tar -tzf #{destination_path} > /dev/null`
|
65
|
+
@log.info(result)
|
66
|
+
$? == 0
|
63
67
|
else
|
64
68
|
true
|
65
69
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hive-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Haig
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chamber
|
@@ -192,20 +192,34 @@ dependencies:
|
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: 1.2.2
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: codeclimate-test-reporter
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 0.6.0
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 0.6.0
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
210
|
name: simplecov
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
198
212
|
requirements:
|
199
213
|
- - "~>"
|
200
214
|
- !ruby/object:Gem::Version
|
201
|
-
version: '0.
|
215
|
+
version: '0.12'
|
202
216
|
type: :development
|
203
217
|
prerelease: false
|
204
218
|
version_requirements: !ruby/object:Gem::Requirement
|
205
219
|
requirements:
|
206
220
|
- - "~>"
|
207
221
|
- !ruby/object:Gem::Version
|
208
|
-
version: '0.
|
222
|
+
version: '0.12'
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: rspec
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -298,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
298
312
|
version: '0'
|
299
313
|
requirements: []
|
300
314
|
rubyforge_project:
|
301
|
-
rubygems_version: 2.5.
|
315
|
+
rubygems_version: 2.5.1
|
302
316
|
signing_key:
|
303
317
|
specification_version: 4
|
304
318
|
summary: Hive Runner
|