sshkit 1.13.1 → 1.14.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
  SHA1:
3
- metadata.gz: 1e6e753e52f903eae9ac0ecb2475a33ec5b96c31
4
- data.tar.gz: 00e47def1aa6b84b43395c9ff39377a16c893de2
3
+ metadata.gz: b21b9fc05481526fd6470265cb3afb51fcc0691a
4
+ data.tar.gz: 4a093de329e546b6410c01c03ab8fe8379c8c53f
5
5
  SHA512:
6
- metadata.gz: 223c11ff64f9a19d422e789883e66d7d48b4d0d7a143f5b60c3f03553c81655780c2e2f3070ac146f04ef9eb592eba5e453ed0ec7d9a6475dbccbaadb4c9ea76
7
- data.tar.gz: 78b90ecb8e2cd4efd4c9760de40d5338b6d8cd4efc2034264a53bf15073301e2dd1b5347c24ba3ea2064050922caf07e47a954983051379191180f4774ddb8bd
6
+ metadata.gz: 7f7ba415cd0b373c356ab99e1ca0624bcca5265c328e2b060def73684541eaf041b539162779a7463691428162e5758bcc025bbe8c6966f3deca4cb95aaa9f8e
7
+ data.tar.gz: f2907bc157c0cacfa2309725aa637deff3bf43079b5dbe255c7d00049997f46cdb574823d8ee8bd848c6e12b24a0c5bb02d8ed66e8196bb87d5fff2b14c41380
@@ -7,6 +7,16 @@ appear at the top.
7
7
 
8
8
  * Your contribution here!
9
9
 
10
+ ## [1.14.0][] (2017-06-30)
11
+
12
+ ### Breaking changes
13
+
14
+ * None
15
+
16
+ ### New features
17
+
18
+ * [#401](https://github.com/capistrano/sshkit/pull/401): Add :log_percent option to specify upload!/download! transfer log percentage - [@aubergene](https://github.com/aubergene)
19
+
10
20
  ## [1.13.1][] (2017-03-31)
11
21
 
12
22
  ### Breaking changes
@@ -15,7 +25,7 @@ appear at the top.
15
25
 
16
26
  ### Bug fixes
17
27
 
18
- * [#397](https://github.com/capistrano/sshkt/pull/397): Fix NoMethodError assign_defaults with net-ssh older than 4.0.0 - [@shirosaki](https://github.com/shirosaki)
28
+ * [#397](https://github.com/capistrano/sshkit/pull/397): Fix NoMethodError assign_defaults with net-ssh older than 4.0.0 - [@shirosaki](https://github.com/shirosaki)
19
29
 
20
30
  ## [1.13.0][] (2017-03-24)
21
31
 
@@ -697,7 +707,8 @@ version `0.0.5`.
697
707
 
698
708
  First release.
699
709
 
700
- [Unreleased]: https://github.com/capistrano/sshkit/compare/v1.13.1...HEAD
710
+ [Unreleased]: https://github.com/capistrano/sshkit/compare/v1.14.0...HEAD
711
+ [1.14.0]: https://github.com/capistrano/sshkit/compare/v1.13.1...v1.14.0
701
712
  [1.13.1]: https://github.com/capistrano/sshkit/compare/v1.13.0...v1.13.1
702
713
  [1.13.0]: https://github.com/capistrano/sshkit/compare/v1.12.0...v1.13.0
703
714
  [1.12.0]: https://github.com/capistrano/sshkit/compare/v1.11.5...v1.12.0
data/README.md CHANGED
@@ -72,7 +72,7 @@ For the remote backend, the file is tranferred with scp.
72
72
  ```ruby
73
73
  on '1.example.com' do
74
74
  upload! 'some_local_file.txt', '/home/some_user/somewhere'
75
- download! '/home/some_user/some_remote_file.txt', 'somewhere_local'
75
+ download! '/home/some_user/some_remote_file.txt', 'somewhere_local', :log_percent 25
76
76
  end
77
77
  ```
78
78
 
data/Rakefile CHANGED
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env rake
2
-
3
1
  require 'bundler/gem_tasks'
4
2
  require 'rake/testtask'
5
3
  require 'rubocop/rake_task'
@@ -62,14 +62,14 @@ module SSHKit
62
62
  end
63
63
 
64
64
  def upload!(local, remote, options = {})
65
- summarizer = transfer_summarizer('Uploading')
65
+ summarizer = transfer_summarizer('Uploading', options)
66
66
  with_ssh do |ssh|
67
67
  ssh.scp.upload!(local, remote, options, &summarizer)
68
68
  end
69
69
  end
70
70
 
71
71
  def download!(remote, local=nil, options = {})
72
- summarizer = transfer_summarizer('Downloading')
72
+ summarizer = transfer_summarizer('Downloading', options)
73
73
  with_ssh do |ssh|
74
74
  ssh.scp.download!(remote, local, options, &summarizer)
75
75
  end
@@ -96,14 +96,16 @@ module SSHKit
96
96
 
97
97
  private
98
98
 
99
- def transfer_summarizer(action)
99
+ def transfer_summarizer(action, options = {})
100
+ log_percent = options[:log_percent] || 10
101
+ log_percent = 100 if log_percent <= 0
100
102
  last_name = nil
101
103
  last_percentage = nil
102
104
  proc do |_ch, name, transferred, total|
103
105
  percentage = (transferred.to_f * 100 / total.to_f)
104
106
  unless percentage.nan?
105
107
  message = "#{action} #{name} #{percentage.round(2)}%"
106
- percentage_r = (percentage / 10).truncate * 10
108
+ percentage_r = (percentage / log_percent).truncate * log_percent
107
109
  if percentage_r > 0 && (last_name != name || last_percentage != percentage_r)
108
110
  info message
109
111
  last_name = name
@@ -21,10 +21,9 @@ module SSHKit
21
21
  def initialize(*args)
22
22
  raise ArgumentError, "Must pass arguments to Command.new" if args.empty?
23
23
  @options = default_options.merge(args.extract_options!)
24
- @command = args.shift.to_s.strip.to_sym
24
+ @command = sanitize_command(args.shift)
25
25
  @args = args
26
26
  @options.symbolize_keys!
27
- sanitize_command!
28
27
  @stdout, @stderr, @full_stdout, @full_stderr = String.new, String.new, String.new, String.new
29
28
  end
30
29
 
@@ -222,16 +221,8 @@ module SSHKit
222
221
  }
223
222
  end
224
223
 
225
- def sanitize_command!
226
- command.to_s.strip!
227
- if command.to_s.match("\n")
228
- @command = String.new.tap do |cs|
229
- command.to_s.lines.each do |line|
230
- cs << line.strip
231
- cs << '; ' unless line == command.to_s.lines.to_a.last
232
- end
233
- end
234
- end
224
+ def sanitize_command(cmd)
225
+ cmd.to_s.lines.map(&:strip).join("; ")
235
226
  end
236
227
 
237
228
  def call_interaction_handler(stream_name, data, channel)
@@ -1,3 +1,3 @@
1
1
  module SSHKit
2
- VERSION = "1.13.1".freeze
2
+ VERSION = "1.14.0".freeze
3
3
  end
@@ -25,6 +25,10 @@ Gem::Specification.new do |gem|
25
25
  gem.add_development_dependency('minitest-reporters')
26
26
  gem.add_development_dependency('rainbow', '~> 2.1.0')
27
27
  gem.add_development_dependency('rake')
28
- gem.add_development_dependency('rubocop')
28
+ gem.add_development_dependency('rubocop', "~> 0.49.1")
29
29
  gem.add_development_dependency('mocha')
30
+
31
+ gem.add_development_dependency('bcrypt_pbkdf')
32
+ gem.add_development_dependency('rbnacl', '~> 3.4')
33
+ gem.add_development_dependency('rbnacl-libsodium')
30
34
  end
@@ -16,7 +16,7 @@ module SSHKit
16
16
  end
17
17
  end
18
18
 
19
- def test_using_a_heredoc
19
+ def test_multiple_lines_are_stripped_of_extra_space_and_joined_by_semicolons
20
20
  c = Command.new <<-EOHEREDOC
21
21
  if test ! -d /var/log; then
22
22
  echo "Example"
@@ -25,6 +25,11 @@ module SSHKit
25
25
  assert_equal "if test ! -d /var/log; then; echo \"Example\"; fi", c.to_command
26
26
  end
27
27
 
28
+ def test_leading_and_trailing_space_is_stripped
29
+ c = Command.new(" echo hi ")
30
+ assert_equal "echo hi", c.to_command
31
+ end
32
+
28
33
  def test_including_the_env
29
34
  SSHKit.config = nil
30
35
  c = Command.new(:rails, 'server', env: {rails_env: :production})
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sshkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.1
4
+ version: 1.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lee Hambley
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-03-31 00:00:00.000000000 Z
12
+ date: 2017-06-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: net-ssh
@@ -111,6 +111,20 @@ dependencies:
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: rubocop
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: 0.49.1
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 0.49.1
126
+ - !ruby/object:Gem::Dependency
127
+ name: mocha
114
128
  requirement: !ruby/object:Gem::Requirement
115
129
  requirements:
116
130
  - - ">="
@@ -124,7 +138,35 @@ dependencies:
124
138
  - !ruby/object:Gem::Version
125
139
  version: '0'
126
140
  - !ruby/object:Gem::Dependency
127
- name: mocha
141
+ name: bcrypt_pbkdf
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: rbnacl
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '3.4'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '3.4'
168
+ - !ruby/object:Gem::Dependency
169
+ name: rbnacl-libsodium
128
170
  requirement: !ruby/object:Gem::Requirement
129
171
  requirements:
130
172
  - - ">="
@@ -251,7 +293,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
293
  version: '0'
252
294
  requirements: []
253
295
  rubyforge_project:
254
- rubygems_version: 2.6.11
296
+ rubygems_version: 2.6.12
255
297
  signing_key:
256
298
  specification_version: 4
257
299
  summary: SSHKit makes it easy to write structured, testable SSH commands in Ruby