skm 0.1.1 → 0.1.2
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 +8 -8
- data/README.md +2 -0
- data/bin/skm +57 -5
- data/lib/skm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjRiOGRjZDZlMzI1ODg2MWNkYWFiZmYwNjAwM2M3Y2Q3Y2FhZmUwNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjA3OWViMTZiMmFhMzdjOTBmYWZkZGMzZjdiNmZiOGIxYTMyM2YwMw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTgyZTU0ZTQ3MjUzYzFhNzFlYzA5YTk5NTUzYTQ2ZWYzZTY5M2EwNjZiOGNj
|
10
|
+
NDUwMTY2MzMxYWFmN2E0MTdjMzFhMzJlMjRlZTkxMTlhZmI3MmZhYjE1OTg3
|
11
|
+
MGM5ZWQyYjQ1MDAzNjQ2MTdjZDdjYjRhNTgxOGFkODBiY2U4ZGE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZTAyZWEyYmNkYTBlMDAyNmJkNjkxNGU3ZTk1MGZhNDEyOWRlNzNjZmE3Zjhk
|
14
|
+
Mjc1NTM3OTFmNjFlN2U5NTk5OTVjZjEyZDExZjZmZjBkMjYzMjYxMDU0MjVk
|
15
|
+
OGQ1NDdmNGY1YzgxMzQ3OThiMjEzY2M1NTMxZWM4N2FhMTUxNGY=
|
data/README.md
CHANGED
data/bin/skm
CHANGED
@@ -13,9 +13,25 @@ end
|
|
13
13
|
|
14
14
|
DOT_SSH_DIR = "#{HOME_DIR}/.ssh"
|
15
15
|
|
16
|
+
# check the existance of a key
|
17
|
+
# @pub: also check public key?
|
18
|
+
def does_key_exist?(keys_dir, name, pub)
|
19
|
+
does_rsa_key_exist?(keys_dir, name, pub) || does_dsa_key_exist?(keys_dir, name, pub)
|
20
|
+
end
|
21
|
+
|
22
|
+
def does_rsa_key_exist?(keys_dir, name, pub)
|
23
|
+
key_dir = "#{keys_dir}/#{name}"
|
24
|
+
File.exists?("#{key_dir}/id_rsa") && (!pub || File.exists?("#{key_dir}/id_rsa.pub"))
|
25
|
+
end
|
26
|
+
|
27
|
+
def does_dsa_key_exist?(keys_dir, name, pub)
|
28
|
+
key_dir = "#{keys_dir}/#{name}"
|
29
|
+
File.exists?("#{key_dir}/id_dsa") && (!pub || File.exists?("#{key_dir}/id_dsa.pub"))
|
30
|
+
end
|
31
|
+
|
16
32
|
# create command
|
17
33
|
def cmd_create(argv, keys_dir)
|
18
|
-
# create a new ssh key under ~/.
|
34
|
+
# create a new ssh key under ~/.skm/key-name directory
|
19
35
|
|
20
36
|
opts = Trollop::options do
|
21
37
|
|
@@ -69,7 +85,7 @@ def cmd_use(argv, keys_dir)
|
|
69
85
|
key_dir = "#{keys_dir}/#{name}"
|
70
86
|
|
71
87
|
# check for existence of the key
|
72
|
-
unless
|
88
|
+
unless does_key_exist?(keys_dir, name, false)
|
73
89
|
puts "Key #{name} doesn't exist."
|
74
90
|
exit 3
|
75
91
|
end
|
@@ -101,6 +117,39 @@ def cmd_list(argv, keys_dir)
|
|
101
117
|
end
|
102
118
|
end
|
103
119
|
|
120
|
+
# show command
|
121
|
+
def cmd_show(argv, keys_dir)
|
122
|
+
Trollop::options do
|
123
|
+
banner <<-EOS
|
124
|
+
Ssh Key Manager
|
125
|
+
|
126
|
+
skm show key-name
|
127
|
+
|
128
|
+
Args:
|
129
|
+
EOS
|
130
|
+
end
|
131
|
+
|
132
|
+
Trollop::die "Too few arguments for 'show' command." if argv.empty?
|
133
|
+
|
134
|
+
name = argv[0]
|
135
|
+
|
136
|
+
# get the pub file
|
137
|
+
pub_file = ''
|
138
|
+
if does_rsa_key_exist?(keys_dir, name, true)
|
139
|
+
pub_file = "id_rsa.pub"
|
140
|
+
elsif does_dsa_key_exist?(keys_dir, name, true)
|
141
|
+
pub_file = "id_dsa.pub"
|
142
|
+
else
|
143
|
+
puts "Key #{name} doesn't exist."
|
144
|
+
exit 4
|
145
|
+
end
|
146
|
+
|
147
|
+
File.open("#{keys_dir}/#{name}/#{pub_file}", 'r').each_line do |line|
|
148
|
+
puts line
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
|
104
153
|
SUB_COMMANDS = %w(create list use)
|
105
154
|
global_opts = Trollop::options do
|
106
155
|
version "#{SshKeyManager::VERSION::STRING} (C) 2013 Hong Xu"
|
@@ -114,6 +163,7 @@ global_opts = Trollop::options do
|
|
114
163
|
|
115
164
|
create Create a new ssh key
|
116
165
|
list List ssh keys
|
166
|
+
show Show the public key
|
117
167
|
use Switch ssh keys
|
118
168
|
|
119
169
|
Use skm [command] --help for the help of the command.
|
@@ -137,11 +187,13 @@ cmd = ARGV.shift # get the subcommand
|
|
137
187
|
case cmd
|
138
188
|
when 'create'
|
139
189
|
cmd_create(ARGV, keys_dir)
|
140
|
-
when 'use'
|
141
|
-
cmd_use(ARGV, keys_dir)
|
142
190
|
when 'list'
|
143
191
|
cmd_list(ARGV, keys_dir)
|
192
|
+
when 'show'
|
193
|
+
cmd_show(ARGV, keys_dir)
|
194
|
+
when 'use'
|
195
|
+
cmd_use(ARGV, keys_dir)
|
144
196
|
else
|
197
|
+
Trollop::die 'Use "skm --help" or "skm [command] --help" for help'
|
145
198
|
end
|
146
199
|
|
147
|
-
|
data/lib/skm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hong Xu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: trollop
|