rundock 1.0.7 → 1.0.8

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: a21e949e779d9e65286baadba3983ec954463992
4
- data.tar.gz: 9e788a4da896088984770a5daeebefe2783b9b35
3
+ metadata.gz: 98f0161c6ca4ad171cede29edf9f91560ef25a28
4
+ data.tar.gz: 8e6a81eac352b785e4684785619e5052c3b8c3cd
5
5
  SHA512:
6
- metadata.gz: b2083be399656f5743561b1d0702d7338cc4b1b297e5bee8fed77cf26a4743ef2a6753d29c1dcc8b59e381b0e4d732a40b8ec3b3081b9e0d2211c8238f776abf
7
- data.tar.gz: 8ea83dc8f122369924fa3bc8500274ecf9a1d570f19d3e71c329166895f8da45ac638ea3088f6ca62f218f1982501ca6fecc8a05fdd915028148890b46b25115
6
+ metadata.gz: 6e514a919db53432ad753bcccd29b0697af2044928f1e6dede1deb0baa065f24f03f32997b0261219432178fe88b0f89023fc471b75100e642f7dabeebec58d3
7
+ data.tar.gz: 05d7196e1b3f3d851d66bd7485f510ea6516c7d55ea9087eab17dfced86aa1ed1d2295ca509e9598f099f436ddcb913b8ebd4af43e83b10a062de105e2d6e00f
data/.rubocop.yml CHANGED
@@ -60,6 +60,9 @@ Style/Alias:
60
60
  Style/MutableConstant:
61
61
  Enabled: false
62
62
 
63
+ Style/NumericLiterals:
64
+ Enabled: false
65
+
63
66
  Style/NumericPredicate:
64
67
  Enabled: false
65
68
 
data/lib/rundock.rb CHANGED
@@ -24,6 +24,7 @@ require 'rundock/builder/hook_builder'
24
24
  require 'rundock/builder/operation_builder'
25
25
  require 'rundock/builder/scenario_builder'
26
26
  require 'rundock/runner'
27
+ require 'rundock/configure'
27
28
  require 'rundock/cli'
28
29
 
29
30
  module Rundock
data/lib/rundock/cli.rb CHANGED
@@ -64,6 +64,15 @@ module Rundock
64
64
  Runner.run(opts.merge(options.deep_symbolize_keys))
65
65
  end
66
66
 
67
+ desc 'configure [options]', 'Configure rundock options'
68
+ option :ssh, type: :boolean, default: true
69
+ option :ssh_config_path, type: :string, aliases: ['-s'], default: "#{Dir.home}/default_ssh.yml"
70
+ def configure
71
+ opts = {}
72
+
73
+ Configure.start(opts.merge(options.deep_symbolize_keys))
74
+ end
75
+
67
76
  def method_missing(command, *args)
68
77
  help
69
78
  end
@@ -0,0 +1,56 @@
1
+ require 'highline'
2
+ require 'yaml'
3
+
4
+ module Rundock
5
+ class Configure
6
+ CONFIGURE_TYPE = %i[ssh]
7
+ CONFIGURE_SSH_OPTIONS = %i[port user keys passphrase ssh_config]
8
+ CONFIGURE_SSH_OPTIONS_QUESTION = [
9
+ 'ssh port',
10
+ 'user name',
11
+ 'private key path',
12
+ 'private key passphrase',
13
+ 'ssh config file path'
14
+ ]
15
+
16
+ class << self
17
+ def start(options)
18
+ Logger.debug 'Starting Configure:'
19
+
20
+ configure = self.new(options)
21
+ CONFIGURE_TYPE.each do |type|
22
+ configure.send(type) if options[type]
23
+ end
24
+ end
25
+ end
26
+
27
+ def initialize(options)
28
+ @options = options
29
+ end
30
+
31
+ def ssh
32
+ cli = HighLine.new
33
+ ssh_opts = { paranoid: false }
34
+
35
+ CONFIGURE_SSH_OPTIONS.each_with_index do |opt, i|
36
+ ans = if opt == :port
37
+ cli.ask("#{CONFIGURE_SSH_OPTIONS_QUESTION[i]}:", Integer) { |q| q.in = 0..65535 }
38
+ elsif opt == :user
39
+ cli.ask("#{CONFIGURE_SSH_OPTIONS_QUESTION[i]}:") { |q| q.default = ENV['USER'] }
40
+ elsif opt == :keys
41
+ [cli.ask("#{CONFIGURE_SSH_OPTIONS_QUESTION[i]}:") { |q| q.default = '~/.ssh/id_rsa' }]
42
+ elsif opt == :passphrase
43
+ cli.ask("#{CONFIGURE_SSH_OPTIONS_QUESTION[i]}:") { |q| q.echo = '*' }
44
+ elsif opt == :ssh_config
45
+ cli.ask("#{CONFIGURE_SSH_OPTIONS_QUESTION[i]}:") { |q| q.default = '~/.ssh/config' }
46
+ else
47
+ cli.ask("#{CONFIGURE_SSH_OPTIONS_QUESTION[i]}:")
48
+ end
49
+
50
+ ssh_opts[opt] = ans unless ans.blank?
51
+ end
52
+
53
+ YAML.dump(ssh_opts, File.open(@options[:ssh_config_path], 'w'))
54
+ end
55
+ end
56
+ end
@@ -1,3 +1,3 @@
1
1
  module Rundock
2
- VERSION = '1.0.7'
2
+ VERSION = '1.0.8'
3
3
  end
data/rundock.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'serverspec', '~> 2.1'
24
24
 
25
25
  spec.add_runtime_dependency 'ansi'
26
+ spec.add_runtime_dependency 'highline'
26
27
  spec.add_runtime_dependency 'net-ssh'
27
28
  spec.add_runtime_dependency 'specinfra', ['>= 2.31.0', '< 3.0.0']
28
29
  spec.add_runtime_dependency 'thor'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rundock
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - hiracy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-24 00:00:00.000000000 Z
11
+ date: 2017-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: highline
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: net-ssh
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -165,6 +179,7 @@ files:
165
179
  - lib/rundock/builder/target_group_builder.rb
166
180
  - lib/rundock/builder/task_builder.rb
167
181
  - lib/rundock/cli.rb
182
+ - lib/rundock/configure.rb
168
183
  - lib/rundock/ext/hash.rb
169
184
  - lib/rundock/ext/object/blank.rb
170
185
  - lib/rundock/ext/string.rb