hive-runner 2.1.11 → 2.1.12
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.
- 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
|