zold 0.11.1 → 0.11.2

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: a4a46ff8dfd2a4472ff5d8f9fb520a94d0ad81a5
4
- data.tar.gz: bde2bcb8514a8dde05c336ac86174251f16345fe
3
+ metadata.gz: c5af52af45ba9dfdd220e85af79232f92b919255
4
+ data.tar.gz: '0880267133e607466adbadaa5d12ce8361ea7ab5'
5
5
  SHA512:
6
- metadata.gz: 3dd9aab9858124ca278be87f6a750d8252a02fb83a33599bfb86db6388419c37d5720ca7455d1bbbf326db5c99439a2b32e998b499f9f0d98643c2a62072690e
7
- data.tar.gz: d4b0462fd4b2abcdd728d10e630914a84f997808cad6734d796f780fed7cbbe689b8fedc19267adadf2b31e7ecc49a48317c9b661acce3f9fed07a321f00476e
6
+ metadata.gz: f94d22443de183a1b6e2be4cabe0880384efd1941adbf082b865f5cabe91d735def081a18a045550fea718a8e8bebe34dc51778c55702e62137bcea147c10d0e
7
+ data.tar.gz: ccfcbbbc989f51cf00def91844f12ba763c66e9144990db8a43fddf17d7dac0a9c6b6391612cdb5bddf7a5938a441caa4d4e3ba1891bb4906d2b70a230d51e6c
data/INSTALL.md CHANGED
@@ -10,6 +10,14 @@ install [Ruby 2.3+](https://www.ruby-lang.org/en/documentation/installation/),
10
10
  [Rubygems](https://rubygems.org/pages/download), and
11
11
  then the [gem](https://rubygems.org/gems/zold).
12
12
 
13
+ ## Debian 9.4
14
+
15
+ ```bash
16
+ $ sudo apt update -y
17
+ $ sudo apt install -y ruby-dev rubygems zlib1g-dev libssl-dev make
18
+ $ gem install zold
19
+ ```
20
+
13
21
  ## Ubuntu 16.04
14
22
 
15
23
  ```bash
data/Rakefile CHANGED
@@ -61,7 +61,7 @@ end
61
61
 
62
62
  require 'cucumber/rake/task'
63
63
  Cucumber::Rake::Task.new(:features) do |t|
64
- t.cucumber_opts = 'features --format progress'
64
+ t.cucumber_opts = 'features --format pretty'
65
65
  Rake::Cleaner.cleanup_files(['coverage'])
66
66
  end
67
67
  Cucumber::Rake::Task.new(:'features:html') do |t|
data/bin/zold-nohup CHANGED
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: utf-8
3
2
  #
4
3
  # Copyright (c) 2018 Yegor Bugayenko
5
4
  #
@@ -21,10 +20,47 @@
21
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
21
  # SOFTWARE.
23
22
 
24
- if ARGV.include?('--skip-install')
25
- cmd = 'echo re-run'
26
- else
27
- cmd = 'gem install zold'
23
+ STDOUT.sync = true
24
+
25
+ require 'slop'
26
+ require 'tempfile'
27
+ require 'open3'
28
+
29
+ $opts = Slop.parse(ARGV, strict: false, suppress_errors: true) do |o|
30
+ o.string '--log-file', 'The file to save logs into', default: 'zold-node.log'
31
+ o.bool '--skip-install', 'Don\'t re-install Zold gem', default: false
32
+ end
33
+
34
+ def log(line)
35
+ File.open($opts['log-file'], 'a') { |f| f.print(line) }
36
+ end
37
+
38
+ def exec(cmd)
39
+ Open3.popen2e(cmd) do |stdin, stdout, thr|
40
+ stdin.close
41
+ loop do
42
+ line = stdout.gets
43
+ break if line.nil?
44
+ log(line)
45
+ end
46
+ code = thr.value.exitstatus
47
+ raise "Exit code #{code} (non zero)" unless code.zero?
48
+ end
49
+ end
50
+
51
+ $pid = fork do
52
+ Signal.trap('HUP') do
53
+ print('Received HUP, ignoring...')
54
+ end
55
+ Signal.trap('TERM') do
56
+ print('Received TERM, terminating...')
57
+ exit(-1)
58
+ end
59
+ loop do
60
+ exec("zold #{$opts.arguments.join(' ')}")
61
+ exec('gem install zold') unless $opts['skip-install']
62
+ end
28
63
  end
64
+ Process.detach($pid)
29
65
 
30
- `nohup bash -c 'while zold #{ARGV.join(' ')}; do #{cmd}; done'`
66
+ puts($pid)
data/features/cli.feature CHANGED
@@ -16,5 +16,6 @@ Feature: Command Line Processing
16
16
  Then Exit code is zero
17
17
 
18
18
  Scenario: Failure through nohup
19
- When I run bin/zold-nohup with "badcommand --skip-install"
19
+ When I run bin/zold-nohup with "badcommand --skip-install --log-file=log.txt; sleep 2; cat log.txt"
20
+ And Stdout contains "Command 'badcommand' is not supported"
20
21
  Then Exit code is zero
@@ -39,13 +39,14 @@ end
39
39
 
40
40
  When(%r{^I run ([a-z/-]+) with "([^"]*)"$}) do |cmd, args|
41
41
  home = File.join(File.dirname(__FILE__), '../..')
42
- @stdout = `ruby -I#{home}/lib #{home}/#{cmd} #{args}`
42
+ @stdout = `ruby -I#{home}/lib #{home}/#{cmd} #{args} 2>&1`
43
43
  @exitstatus = $CHILD_STATUS.exitstatus
44
44
  end
45
45
 
46
46
  When(/^I run bash with:$/) do |text|
47
47
  FileUtils.copy_entry(@cwd, File.join(@dir, 'zold'))
48
- @stdout = `#{text}`
48
+ File.write('run.sh', text)
49
+ @stdout = `/bin/bash run.sh 2>&1`
49
50
  @exitstatus = $CHILD_STATUS.exitstatus
50
51
  end
51
52
 
@@ -62,7 +62,7 @@ Available options:"
62
62
  private
63
63
 
64
64
  def merge(wallet, cps, _)
65
- raise 'There are no remote copies, try FETCH first' if cps.all.empty?
65
+ raise "There are no remote copies of #{wallet.id}, try FETCH first" if cps.all.empty?
66
66
  cps = cps.all.sort_by { |c| c[:score] }.reverse
67
67
  patch = Patch.new
68
68
  main = Wallet.new(cps[0][:path])
@@ -148,7 +148,8 @@ Available options:"
148
148
  raise "Masqueraded as #{score.host}:#{score.port}" if r.host != score.host || r.port != score.port
149
149
  @remotes.rescore(score.host, score.port, score.value)
150
150
  if opts['reboot'] && Semantic::Version.new(VERSION) < Semantic::Version.new(json['version'])
151
- @log.info("#{r}: their version #{json['version']} is higher than mine #{VERSION}, reboot!")
151
+ @log.info("#{r}: their version #{json['version']} is higher than mine #{VERSION}, reboot! \
152
+ (use --never-reboot to avoid this from happening)")
152
153
  exit(0)
153
154
  end
154
155
  if deep
data/lib/zold/version.rb CHANGED
@@ -23,5 +23,5 @@
23
23
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
24
24
  # License:: MIT
25
25
  module Zold
26
- VERSION = '0.11.1'.freeze
26
+ VERSION = '0.11.2'.freeze
27
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.11.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko