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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83530d15d6a4329e30c6625875c158df68b70124
4
- data.tar.gz: b147876312ad0a0d89160deab9c14c1be4dc9628
3
+ metadata.gz: abe451df28b200455681ed819de8683bc2b022c1
4
+ data.tar.gz: 0f14a25e38f20b79bc769af6f1e8822ac33d817a
5
5
  SHA512:
6
- metadata.gz: 01d8d291ac95cd222f694e38285bd5718ed42aa5aa0228e73d68b8ff01bd73cf4565144824b9ddfc570bf72d521de255a4dbc61389db0faccaabd5510bc0131b
7
- data.tar.gz: 9e4592d70e5d54e4302760828e014cb7087e58052fa1e294fbdbbd58b58170f1172ca50f7f1420b813b760bdf06288299198bf2188583dde5bf06c95bc6457cc
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 add_modules
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
- mods
153
+ {
154
+ mods: mods,
155
+ daemons: daemons,
156
+ ruby: ruby
157
+ }
81
158
  end
82
159
 
83
- def setup_hive(dir, mods)
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
- Dir.chdir dir
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('bundle_install.out')
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
- mods = []
182
- mods = add_modules unless headless
183
- setup_hive(dir, mods)
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|
@@ -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 =~ /zip/
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.11
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-09-22 00:00:00.000000000 Z
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.10'
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.10'
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.0
315
+ rubygems_version: 2.5.1
302
316
  signing_key:
303
317
  specification_version: 4
304
318
  summary: Hive Runner