ec2ssh 3.0.2 → 3.0.3
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/bash/ec2ssh.bash +53 -0
- data/lib/ec2ssh/builder.rb +6 -3
- data/lib/ec2ssh/cli.rb +32 -0
- data/lib/ec2ssh/version.rb +1 -1
- data/spec/lib/ec2ssh/builder_spec.rb +24 -2
- data/spec/lib/ec2ssh/command/update_spec.rb +0 -1
- data/spec/lib/ec2ssh/dsl_spec.rb +0 -3
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 427d803411f39f80c250748ed172af0f72308082
|
4
|
+
data.tar.gz: 0378e1f19cfd75db31a2441967b46e72f3abbd15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8e5de4f469dbbfc56f6061484932748b0e6387f72035b51d9a53ce453fa2b8ee4007ce06e253ef087073c61d05999991ac44c16959a86b84a35d384261e8556
|
7
|
+
data.tar.gz: a77fffdc9fec166647df4372238a277600bed4a8dbc8c4fa3935311de0a2b8f3712441ac6ec3f0bd4386a04d0b491ad976ef63797ddcf18bc1caf95f893678d9
|
data/ChangeLog.md
CHANGED
data/bash/ec2ssh.bash
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# bash completion support for ec2ssh
|
2
|
+
|
3
|
+
_ec2ssh() {
|
4
|
+
local cmd cur prev subcmd
|
5
|
+
cmd=$1
|
6
|
+
cur=$2
|
7
|
+
prev=$3
|
8
|
+
|
9
|
+
subcmds="help init migrate remove update version"
|
10
|
+
common_opts="--dotfile --verbose"
|
11
|
+
|
12
|
+
# contextual completion
|
13
|
+
case $prev in
|
14
|
+
ec2ssh)
|
15
|
+
case "$cur" in
|
16
|
+
-*)
|
17
|
+
COMPREPLY=( $(compgen -W "$common_opts" $cur) )
|
18
|
+
;;
|
19
|
+
*)
|
20
|
+
COMPREPLY=( $(compgen -W "$subcmds" $cur) )
|
21
|
+
esac
|
22
|
+
return 0
|
23
|
+
;;
|
24
|
+
--aws-key)
|
25
|
+
COMPREPLY=()
|
26
|
+
return 0;
|
27
|
+
;;
|
28
|
+
--dotfile)
|
29
|
+
COMPREPLY=( $(compgen -o default -- "$cur"))
|
30
|
+
return 0;
|
31
|
+
;;
|
32
|
+
esac
|
33
|
+
|
34
|
+
# complete options
|
35
|
+
subcmd=${COMP_WORDS[1]}
|
36
|
+
|
37
|
+
case $subcmd in
|
38
|
+
update)
|
39
|
+
COMPREPLY=( $(compgen -W "--aws-key $common_opts" -- "$cur") )
|
40
|
+
;;
|
41
|
+
help)
|
42
|
+
COMPREPLY=( $(compgen -W "$subcmds" $cur) )
|
43
|
+
;;
|
44
|
+
*)
|
45
|
+
COMPREPLY=( $(compgen -W "$common_opts" -- "$cur") )
|
46
|
+
;;
|
47
|
+
esac
|
48
|
+
|
49
|
+
return 0
|
50
|
+
|
51
|
+
}
|
52
|
+
|
53
|
+
complete -F _ec2ssh ec2ssh
|
data/lib/ec2ssh/builder.rb
CHANGED
@@ -6,7 +6,9 @@ module Ec2ssh
|
|
6
6
|
class Builder
|
7
7
|
def initialize(container)
|
8
8
|
@container = container
|
9
|
-
|
9
|
+
safe_level = nil
|
10
|
+
erb_trim_mode = '%-'
|
11
|
+
@host_lines_erb = ERB.new @container.host_line, safe_level, erb_trim_mode
|
10
12
|
end
|
11
13
|
|
12
14
|
def build_host_lines
|
@@ -16,10 +18,11 @@ module Ec2ssh
|
|
16
18
|
ec2s.instances(name).each do |instance|
|
17
19
|
bind = instance.instance_eval { binding }
|
18
20
|
next if @container.reject && @container.reject.call(instance)
|
19
|
-
|
21
|
+
line = @host_lines_erb.result(bind).rstrip
|
22
|
+
out.puts line unless line.empty?
|
20
23
|
end
|
21
24
|
end
|
22
|
-
out.string
|
25
|
+
out.string.rstrip
|
23
26
|
end
|
24
27
|
|
25
28
|
def ec2s
|
data/lib/ec2ssh/cli.rb
CHANGED
@@ -51,6 +51,38 @@ module Ec2ssh
|
|
51
51
|
command.run
|
52
52
|
end
|
53
53
|
|
54
|
+
desc 'shellcomp [-]', 'Initialize shell completion for bash/zsh'
|
55
|
+
def shellcomp(_ = false)
|
56
|
+
if args.include?("-")
|
57
|
+
print_rc = true
|
58
|
+
else
|
59
|
+
print_rc = false
|
60
|
+
end
|
61
|
+
|
62
|
+
# print instructions for automatically enabling shell completion
|
63
|
+
unless print_rc
|
64
|
+
puts <<EOS
|
65
|
+
# Enable ec2ssh completion by adding
|
66
|
+
# the following to .bash_profile/.zshrc
|
67
|
+
|
68
|
+
type ec2ssh >/dev/null 2>&1 && eval "$(ec2ssh shellcomp -)"
|
69
|
+
|
70
|
+
EOS
|
71
|
+
exit(false)
|
72
|
+
end
|
73
|
+
|
74
|
+
# print shell script for enabling shell completion
|
75
|
+
zsh_comp_file = File.expand_path("../../../zsh/_ec2ssh", __FILE__)
|
76
|
+
bash_comp_file = File.expand_path("../../../bash/ec2ssh.bash", __FILE__)
|
77
|
+
puts <<EOS
|
78
|
+
if [ -n "${BASH_VERSION:-}" ]; then
|
79
|
+
source #{bash_comp_file}
|
80
|
+
elif [ -n "${ZSH_VERSION:-}" ]; then
|
81
|
+
source #{zsh_comp_file}
|
82
|
+
fi
|
83
|
+
EOS
|
84
|
+
end
|
85
|
+
|
54
86
|
desc 'version', 'Show version'
|
55
87
|
def version
|
56
88
|
require 'ec2ssh/version'
|
data/lib/ec2ssh/version.rb
CHANGED
@@ -38,7 +38,7 @@ describe Ec2ssh::Builder do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
it do
|
41
|
-
expect(builder.build_host_lines).to eq <<-END
|
41
|
+
expect(builder.build_host_lines).to eq <<-END.rstrip
|
42
42
|
# section: key1
|
43
43
|
Host srv1
|
44
44
|
Host srv2
|
@@ -54,7 +54,7 @@ Host srv4
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it do
|
57
|
-
expect(builder.build_host_lines).to eq <<-END
|
57
|
+
expect(builder.build_host_lines).to eq <<-END.rstrip
|
58
58
|
# section: key1
|
59
59
|
Host srv2
|
60
60
|
# section: key2
|
@@ -63,5 +63,27 @@ Host srv4
|
|
63
63
|
END
|
64
64
|
end
|
65
65
|
end
|
66
|
+
|
67
|
+
context 'checking erb trim_mode' do
|
68
|
+
before do
|
69
|
+
container.host_line = <<-END
|
70
|
+
% if tags['Name']
|
71
|
+
<%- if tags['Name'] == 'srv3' -%>
|
72
|
+
Host <%= tags['Name'] %>
|
73
|
+
HostName <%= tags['Name'] %>
|
74
|
+
<%- end -%>
|
75
|
+
% end
|
76
|
+
END
|
77
|
+
end
|
78
|
+
|
79
|
+
it do
|
80
|
+
expect(builder.build_host_lines).to eq <<-END.rstrip
|
81
|
+
# section: key1
|
82
|
+
# section: key2
|
83
|
+
Host srv3
|
84
|
+
HostName srv3
|
85
|
+
END
|
86
|
+
end
|
87
|
+
end
|
66
88
|
end
|
67
89
|
end
|
data/spec/lib/ec2ssh/dsl_spec.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ec2ssh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Issei Naruta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -69,6 +69,7 @@ files:
|
|
69
69
|
- MIT-LICENSE
|
70
70
|
- README.md
|
71
71
|
- Rakefile
|
72
|
+
- bash/ec2ssh.bash
|
72
73
|
- bin/ec2ssh
|
73
74
|
- ec2ssh.gemspec
|
74
75
|
- example/example.ec2ssh
|