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 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