skm 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +2 -0
  3. data/bin/skm +57 -5
  4. data/lib/skm/version.rb +1 -1
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YmZiODAwYTdlODA4ZmY2M2E3NmI4MGE5NDBlZDYxYTgwNDY0NDhjYQ==
4
+ ZjRiOGRjZDZlMzI1ODg2MWNkYWFiZmYwNjAwM2M3Y2Q3Y2FhZmUwNg==
5
5
  data.tar.gz: !binary |-
6
- ZWZlZWY1MmM2NmYzMjQ2MDEwMzAxN2UwNGUxOGE0MGY4NWE5ZjE4OQ==
6
+ ZjA3OWViMTZiMmFhMzdjOTBmYWZkZGMzZjdiNmZiOGIxYTMyM2YwMw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZTE3MThlOWQ4NGU1NDEwMDk1MWMzODRjY2Y3MWU3ZTg3YzMwMDc2MzIzZWIx
10
- M2FiMDFlMWZkZWNmMDgxZmZlNmIwM2YwYjM2ODZlNzllMzRiZDZkMjRkMDIz
11
- ZWVhYWFiNTg4MGM0YTc5ZmZjMzY1ZjU5ODJkZDk2YWMwMzVhZDY=
9
+ OTgyZTU0ZTQ3MjUzYzFhNzFlYzA5YTk5NTUzYTQ2ZWYzZTY5M2EwNjZiOGNj
10
+ NDUwMTY2MzMxYWFmN2E0MTdjMzFhMzJlMjRlZTkxMTlhZmI3MmZhYjE1OTg3
11
+ MGM5ZWQyYjQ1MDAzNjQ2MTdjZDdjYjRhNTgxOGFkODBiY2U4ZGE=
12
12
  data.tar.gz: !binary |-
13
- ZGUxYjEzYjJlMjllMWIyMzdiMDdkYWU3YzRjYTJhYjUxOTY5NjdhNmI2N2Qw
14
- NGIzZjIxOGJjM2E4ZjM0MGE5Zjg2NzM1ODA3MjU3MjA4YzI3ZGI3M2EyNWFm
15
- YzE5MzY0YjYyOWQ4NzVmOGQyMDYzNzgwMjE1NzNiZTZjMzg0YmY=
13
+ ZTAyZWEyYmNkYTBlMDAyNmJkNjkxNGU3ZTk1MGZhNDEyOWRlNzNjZmE3Zjhk
14
+ Mjc1NTM3OTFmNjFlN2U5NTk5OTVjZjEyZDExZjZmZjBkMjYzMjYxMDU0MjVk
15
+ OGQ1NDdmNGY1YzgxMzQ3OThiMjEzY2M1NTMxZWM4N2FhMTUxNGY=
data/README.md CHANGED
@@ -22,6 +22,8 @@ Switch to another key:
22
22
 
23
23
  skm use key_name
24
24
 
25
+ NOTE: ssh-agent may need to be disabled for this new key to be valid!
26
+
25
27
  List all keys:
26
28
 
27
29
  skm list
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 ~/.mul-ssh-keys/key-name directory
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 File.exists? "#{key_dir}/id_rsa" or File.exists? "#{key_dir}/id_dsa"
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
@@ -4,7 +4,7 @@ module SshKeyManager #:nodoc:#
4
4
  module VERSION
5
5
  MAJOR = 0
6
6
  MINOR = 1
7
- TINY = 1
7
+ TINY = 2
8
8
 
9
9
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
10
10
  end
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.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-07 00:00:00.000000000 Z
11
+ date: 2013-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trollop