net-ssh-cli 1.1.2 → 1.2.0

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