chake 0.10 → 0.10.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 +5 -0
- data/Rakefile +1 -37
- data/lib/chake/backend/ssh.rb +25 -3
- data/lib/chake/node.rb +4 -2
- data/lib/chake/version.rb +1 -1
- data/spec/chake/backend/ssh_spec.rb +13 -0
- data/spec/chake/node_spec.rb +11 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6c0ada57c6acd1ba0a23069a528397144d0e61c
|
4
|
+
data.tar.gz: 030adffa33315100225ab10a63a7038e9f6fd512
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 866152de25dbedae6edc9b3ad993b425a468c04dfaf9e8fa13bb2ba597128801fbdc46f33ea101919dd02ea2e99a4de98e9c663ae72a12cfe84780ee7b527eac
|
7
|
+
data.tar.gz: 608ccff3b9143a48bb16ca44f9746964f10481389e42cc91cf566889d2fdf224956a0f164b73d6515a7c7d9fb09fee8ef7488f7d2ef50aaec7666687e41e3a88
|
data/ChangeLog.md
CHANGED
data/Rakefile
CHANGED
@@ -48,42 +48,6 @@ end
|
|
48
48
|
|
49
49
|
task 'build:all' => ['build:debsrc', 'build:rpmsrc']
|
50
50
|
|
51
|
-
task :obs => 'build:all' do
|
52
|
-
if !File.exist?('tmp/obs/home:terceiro:chake/chake')
|
53
|
-
mkdir_p 'tmp/obs'
|
54
|
-
chdir 'tmp/obs' do
|
55
|
-
sh 'osc', 'checkout', 'home:terceiro:chake', 'chake'
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
# remove old files
|
60
|
-
chdir 'tmp/obs/home:terceiro:chake/chake' do
|
61
|
-
Dir.glob('*').each do |f|
|
62
|
-
sh 'osc', 'remove', '--force', f
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
# copy over new files
|
67
|
-
[
|
68
|
-
"pkg/#{pkg.name}-#{pkg.version}.tar.gz",
|
69
|
-
"pkg/#{pkg.name}.spec",
|
70
|
-
"pkg/#{pkg.name}_#{pkg.version}.orig.tar.gz",
|
71
|
-
"pkg/#{pkg.name}_#{pkg.version}-1.debian.tar.xz",
|
72
|
-
"pkg/#{pkg.name}_#{pkg.version}-1.dsc",
|
73
|
-
].each do |f|
|
74
|
-
sh 'cp', '--dereference', f, 'tmp/obs/home:terceiro:chake/chake'
|
75
|
-
end
|
76
|
-
|
77
|
-
# push new files to the repository
|
78
|
-
chdir 'tmp/obs/home:terceiro:chake/chake' do
|
79
|
-
Dir.glob('*').each do |f|
|
80
|
-
sh 'osc', 'add', f
|
81
|
-
end
|
82
|
-
sh 'osc', 'commit', '--message', "#{pkg.name}, version #{pkg.version}"
|
83
|
-
end
|
84
|
-
|
85
|
-
end
|
86
|
-
|
87
51
|
desc 'lists changes since last release'
|
88
52
|
task :changelog do
|
89
53
|
last_tag = `git tag | sort -V`.split.last
|
@@ -108,6 +72,6 @@ task :check_changelog do
|
|
108
72
|
end
|
109
73
|
|
110
74
|
desc 'Makes a release'
|
111
|
-
task :release => [:check_tag, :check_changelog, :test, 'bundler:release'
|
75
|
+
task :release => [:check_tag, :check_changelog, :test, 'bundler:release']
|
112
76
|
|
113
77
|
task :default => :test
|
data/lib/chake/backend/ssh.rb
CHANGED
@@ -5,7 +5,7 @@ module Chake
|
|
5
5
|
class Ssh < Backend
|
6
6
|
|
7
7
|
def scp
|
8
|
-
['scp', ssh_config].flatten.compact
|
8
|
+
['scp', ssh_config, scp_options].flatten.compact
|
9
9
|
end
|
10
10
|
|
11
11
|
def scp_dest
|
@@ -21,7 +21,7 @@ module Chake
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def command_runner
|
24
|
-
[ssh_prefix, 'ssh', ssh_config, ssh_target].flatten.compact
|
24
|
+
[ssh_prefix, 'ssh', ssh_config, ssh_options, ssh_target].flatten.compact
|
25
25
|
end
|
26
26
|
|
27
27
|
def shell_command
|
@@ -31,7 +31,21 @@ module Chake
|
|
31
31
|
private
|
32
32
|
|
33
33
|
def rsync_ssh
|
34
|
-
|
34
|
+
@rsync_ssh ||=
|
35
|
+
begin
|
36
|
+
ssh_command = 'ssh'
|
37
|
+
if File.exist?(ssh_config_file)
|
38
|
+
ssh_command += ' -F ' + ssh_config_file
|
39
|
+
end
|
40
|
+
if node.port
|
41
|
+
ssh_command += ' -p ' + node.port.to_s
|
42
|
+
end
|
43
|
+
if ssh_command == 'ssh'
|
44
|
+
[]
|
45
|
+
else
|
46
|
+
['-e', ssh_command]
|
47
|
+
end
|
48
|
+
end
|
35
49
|
end
|
36
50
|
|
37
51
|
def ssh_config
|
@@ -50,6 +64,14 @@ module Chake
|
|
50
64
|
[node.remote_username, node.hostname].compact.join('@')
|
51
65
|
end
|
52
66
|
|
67
|
+
def ssh_options
|
68
|
+
node.port && ['-p', node.port.to_s] || []
|
69
|
+
end
|
70
|
+
|
71
|
+
def scp_options
|
72
|
+
node.port && ['-P', node.port.to_s] || []
|
73
|
+
end
|
74
|
+
|
53
75
|
end
|
54
76
|
|
55
77
|
end
|
data/lib/chake/node.rb
CHANGED
@@ -11,6 +11,7 @@ module Chake
|
|
11
11
|
extend Forwardable
|
12
12
|
|
13
13
|
attr_reader :hostname
|
14
|
+
attr_reader :port
|
14
15
|
attr_reader :username
|
15
16
|
attr_reader :remote_username
|
16
17
|
attr_reader :path
|
@@ -25,16 +26,17 @@ module Chake
|
|
25
26
|
|
26
27
|
def initialize(hostname, data = {})
|
27
28
|
uri = URI.parse(hostname)
|
28
|
-
if !uri.
|
29
|
+
if !uri.host && ((!uri.scheme && uri.path) || (uri.scheme && uri.opaque))
|
29
30
|
uri = URI.parse("ssh://#{hostname}")
|
30
31
|
end
|
31
|
-
if uri.path.empty?
|
32
|
+
if uri.path && uri.path.empty?
|
32
33
|
uri.path = nil
|
33
34
|
end
|
34
35
|
|
35
36
|
@backend_name = uri.scheme
|
36
37
|
|
37
38
|
@hostname = uri.host
|
39
|
+
@port = uri.port
|
38
40
|
@username = uri.user || Etc.getpwuid.name
|
39
41
|
@remote_username = uri.user
|
40
42
|
@path = uri.path || "/var/tmp/chef.#{username}"
|
data/lib/chake/version.rb
CHANGED
@@ -21,4 +21,17 @@ describe Chake::Backend::Ssh do
|
|
21
21
|
expect(node.remote_username).to eq('myuser')
|
22
22
|
end
|
23
23
|
|
24
|
+
context 'with a custom port' do
|
25
|
+
let(:node) { Chake::Node.new('ssh://myhost:2222') }
|
26
|
+
it 'uses port with ssh' do
|
27
|
+
expect(backend.command_runner).to eq(['ssh', '-p', '2222', 'myhost'])
|
28
|
+
end
|
29
|
+
it 'uses port with scp' do
|
30
|
+
expect(backend.scp).to eq(['scp', '-P', '2222'])
|
31
|
+
end
|
32
|
+
it 'uses port with rsync' do
|
33
|
+
expect(backend.send(:rsync_ssh)).to eq(['-e', 'ssh -p 2222'])
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
24
37
|
end
|
data/spec/chake/node_spec.rb
CHANGED
@@ -34,6 +34,17 @@ describe Chake::Node do
|
|
34
34
|
expect(with_data.data).to be_a(Hash)
|
35
35
|
end
|
36
36
|
|
37
|
+
let(:with_port) { Chake::Node.new('ssh://foo.bar.com:2222') }
|
38
|
+
it('accepts a port specification') do
|
39
|
+
expect(with_port.port).to eq(2222)
|
40
|
+
end
|
41
|
+
|
42
|
+
let(:with_port_but_no_scheme) { Chake::Node.new('foo.bar.com:2222') }
|
43
|
+
it('accepts a port specification without a scheme') do
|
44
|
+
expect(with_port_but_no_scheme.port).to eq(2222)
|
45
|
+
expect(with_port_but_no_scheme.backend.to_s).to eq('ssh')
|
46
|
+
end
|
47
|
+
|
37
48
|
[:run, :run_as_root, :rsync_dest].each do |method|
|
38
49
|
it("delegates #{method} to backend") do
|
39
50
|
node = simple
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antonio Terceiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|