net-ssh-cli 1.1.2 → 1.2.0

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
  SHA256:
3
- metadata.gz: 28b420aa1d03fd2fd72d919680860a0d4ce538459efadc9da60ecb2ff3e263ea
4
- data.tar.gz: 581106b7a48c597f1aef8e86874718df23480fe2069f25f14cf10a70983adcc7
3
+ metadata.gz: df1b678f96b5758f1c1d5c17af957b177d2ca266e3c184a1e1df0e6124c3cd2f
4
+ data.tar.gz: a645c159917d066d1c86f7a6afb69fc7932c1ff7059524cbf296864673fc6454
5
5
  SHA512:
6
- metadata.gz: 801ecce440d843edbe0da6c4a73eba644d85d74dacb618cbbcd7833eea177d1427fcaf4e043206a29401b7c5f0524455678b7c059d1367859ddc72cea8911c14
7
- data.tar.gz: 4d9e61d08c7b707863a587cea8a5425c1daf1760757b290afbe587fdf8d381f62e4e01fa3c988916cf7cff936302f69d9a6ea03c372f3836ea9a31dada7ff42e
6
+ metadata.gz: fa3eef297fc1650a67a4c5245bee743640ab146e615e683afd2349a0d996760d7ad7076a29fb3922880f92a76532f1b69f54d0209241925f1fb53d2b6ef3509a
7
+ data.tar.gz: c438a6ec62a4416847dec30ce3fd2c0365bf05c5e9a18f3791b6c8405ac1e516dbad45e452c8f9d781008d2992a40a50b4a8364e789fb1b37c1db888e57dce38
data/.rubocop.yml CHANGED
@@ -3,7 +3,14 @@ AllCops:
3
3
  Exclude:
4
4
  - 'bin/localhost'
5
5
  Metrics/LineLength:
6
- Max: 160
6
+ Max: 240
7
7
  Metrics/BlockLength:
8
- Max: 160
9
-
8
+ Max: 240
9
+ Style/SymbolArray:
10
+ EnforcedStyle: brackets
11
+ Naming/RescuedExceptionsVariableName:
12
+ PreferredName: error
13
+ Style/StringLiterals:
14
+ EnforcedStyle: double_quotes
15
+ Style/StringLiteralsInInterpolation:
16
+ EnforcedStyle: double_quotes
data/lib/net/ssh/cli.rb CHANGED
@@ -41,6 +41,7 @@ module Net
41
41
  default_prompt: /\n?^(\S+@.*)\z/, # the default prompt to search for
42
42
  cmd_rm_prompt: false, # whether the prompt should be removed in the output of #cmd
43
43
  cmd_rm_command: false, # whether the given command should be removed in the output of #cmd
44
+ run_impact: false, # whether to run #impact commands. This might align with testing|development|production. example #impact("reboot")
44
45
  read_till_timeout: nil, # timeout for #read_till to find the match
45
46
  named_prompts: ActiveSupport::HashWithIndifferentAccess.new, # you can used named prompts for #with_prompt {}
46
47
  before_on_stdout_procs: ActiveSupport::HashWithIndifferentAccess.new, # procs to call before data arrives from the underlying connection
@@ -226,6 +227,22 @@ module Net
226
227
  end
227
228
  end
228
229
 
230
+ # the same as #cmd but it will only run the command if the option run_impact is set to true.
231
+ # this can be used for commands which you might not want to run in development|testing mode but in production
232
+ # cli.impact("reboot")
233
+ # => "skip: reboot"
234
+ # cli.run_impact = true
235
+ # cli.impact("reboot")
236
+ # => "system is going to reboot NOW"
237
+ def impact(command, **opts)
238
+ run_impact? ? cmd(command, **opts) : "skip: #{command.inspect}"
239
+ end
240
+
241
+ # same as #cmds but for #impact instead of #cmd
242
+ def impacts(*commands, **opts)
243
+ commands.flatten.map { |command| [command, impact(command, **opts)] }
244
+ end
245
+
229
246
  def host
230
247
  @net_ssh&.host
231
248
  end
@@ -3,7 +3,7 @@
3
3
  module Net
4
4
  module SSH
5
5
  module CLI
6
- VERSION = '1.1.2'
6
+ VERSION = '1.2.0'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-ssh-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabian Stillhart
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-08 00:00:00.000000000 Z
11
+ date: 2019-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler