sshkit 1.19.0 → 1.19.1
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 +4 -4
- data/CHANGELOG.md +6 -1
- data/lib/sshkit/backends/abstract.rb +3 -2
- data/lib/sshkit/command.rb +6 -1
- data/lib/sshkit/version.rb +1 -1
- data/test/unit/backends/test_abstract.rb +12 -0
- data/test/unit/test_command.rb +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b8cc968102708cd224132592b522e059c57c29a68b7c0feced32ef905fb6f1e
|
4
|
+
data.tar.gz: d5a2ad7b2a09ba796ad5def0a211e793e7e27334fdf2296cc557fc92e9e92597
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67f29e165c1d9612f157323a638a04054688a50c0bb302620756c3590a854929fcbac166b3f9f7671f32c21de2a22c5ca2e3ba7c3edb35c8918f7fc4ddc38d1d
|
7
|
+
data.tar.gz: 70c0ada0ed66f2b92032f7fc9adda13f3a2bb1d31207733072772817a795f7342de7b88acee6dc154c52a14c4aaaef051c4922118a87669c433320606ea2e0e6
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,10 @@ appear at the top.
|
|
7
7
|
|
8
8
|
* Your contribution here!
|
9
9
|
|
10
|
+
## [1.19.1][] (2019-07-02)
|
11
|
+
|
12
|
+
* [#465](https://github.com/capistrano/sshkit/pull/456): Fix a regression in 1.19.0 that prevented `~` from being used in Capistrano paths, e.g. `:deploy_to`, etc. - [@grosser](https://github.com/grosser)
|
13
|
+
|
10
14
|
## [1.19.0][] (2019-06-30)
|
11
15
|
|
12
16
|
* [#455](https://github.com/capistrano/sshkit/pull/455): Ensure UUID of commands are stable in logging - [@lazyatom](https://github.com/lazyatom)
|
@@ -764,7 +768,8 @@ version `0.0.5`.
|
|
764
768
|
|
765
769
|
First release.
|
766
770
|
|
767
|
-
[Unreleased]: https://github.com/capistrano/sshkit/compare/v1.19.
|
771
|
+
[Unreleased]: https://github.com/capistrano/sshkit/compare/v1.19.1...HEAD
|
772
|
+
[1.19.1]: https://github.com/capistrano/sshkit/compare/v1.19.0...v1.19.1
|
768
773
|
[1.19.0]: https://github.com/capistrano/sshkit/compare/v1.18.2...v1.19.0
|
769
774
|
[1.18.2]: https://github.com/capistrano/sshkit/compare/v1.18.1...v1.18.2
|
770
775
|
[1.18.1]: https://github.com/capistrano/sshkit/compare/v1.18.0...v1.18.1
|
@@ -82,9 +82,10 @@ module SSHKit
|
|
82
82
|
|
83
83
|
def within(directory, &_block)
|
84
84
|
(@pwd ||= []).push directory.to_s
|
85
|
+
escaped = Command.shellescape_except_tilde(pwd_path)
|
85
86
|
execute <<-EOTEST, verbosity: Logger::DEBUG
|
86
|
-
if test ! -d #{
|
87
|
-
then echo "Directory does not exist '#{
|
87
|
+
if test ! -d #{escaped}
|
88
|
+
then echo "Directory does not exist '#{escaped}'" 1>&2
|
88
89
|
false
|
89
90
|
fi
|
90
91
|
EOTEST
|
data/lib/sshkit/command.rb
CHANGED
@@ -143,7 +143,7 @@ module SSHKit
|
|
143
143
|
|
144
144
|
def within(&_block)
|
145
145
|
return yield unless options[:in]
|
146
|
-
"cd #{options[:in]
|
146
|
+
"cd #{self.class.shellescape_except_tilde(options[:in])} && #{yield}"
|
147
147
|
end
|
148
148
|
|
149
149
|
def environment_hash
|
@@ -219,6 +219,11 @@ module SSHKit
|
|
219
219
|
end
|
220
220
|
end
|
221
221
|
|
222
|
+
# allow using home directory but escape everything else like spaces etc
|
223
|
+
def self.shellescape_except_tilde(file)
|
224
|
+
file.shellescape.gsub("\\~", "~")
|
225
|
+
end
|
226
|
+
|
222
227
|
private
|
223
228
|
|
224
229
|
def default_options
|
data/lib/sshkit/version.rb
CHANGED
@@ -99,6 +99,18 @@ module SSHKit
|
|
99
99
|
assert_equal '/usr/bin/env cat file', backend.executed_command.to_command
|
100
100
|
end
|
101
101
|
|
102
|
+
def test_within_home
|
103
|
+
backend = ExampleBackend.new do
|
104
|
+
within '~/foo' do
|
105
|
+
execute :cat, 'file', :strip => false
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
backend.run
|
110
|
+
|
111
|
+
assert_equal 'cd ~/foo && /usr/bin/env cat file', backend.executed_command.to_command
|
112
|
+
end
|
113
|
+
|
102
114
|
def test_background_logs_deprecation_warnings
|
103
115
|
deprecation_out = ''
|
104
116
|
SSHKit.config.deprecation_output = deprecation_out
|
data/test/unit/test_command.rb
CHANGED
@@ -84,6 +84,11 @@ module SSHKit
|
|
84
84
|
assert_equal "cd /opt/sites && /usr/bin/env ls -l", c.to_command
|
85
85
|
end
|
86
86
|
|
87
|
+
def test_working_in_home_directory
|
88
|
+
c = Command.new(:ls, '-l', in: "~/sites")
|
89
|
+
assert_equal "cd ~/sites && /usr/bin/env ls -l", c.to_command
|
90
|
+
end
|
91
|
+
|
87
92
|
def test_working_in_a_given_weird_directory
|
88
93
|
c = Command.new(:ls, '-l', in: "/opt/sites and stuff")
|
89
94
|
assert_equal "cd /opt/sites\\ and\\ stuff && /usr/bin/env ls -l", c.to_command
|
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.19.
|
4
|
+
version: 1.19.1
|
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: 2019-07-
|
12
|
+
date: 2019-07-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: net-ssh
|