ssh_key_switcher 1.0.4 → 1.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0cb5737abcac6c9d84606bf41e6ee5b0574adb81c06f759082002a605e1510f5
4
- data.tar.gz: 904c1781a5ea8c727a7aaa4185957ba9987fb90709059b940ce32c3a01214f10
3
+ metadata.gz: e2ad23e81673482e19d3eae55c0b787ef26f1dfd3f1d1e213a1c10039495478d
4
+ data.tar.gz: 1f539080d59584e814f18d4732df9e89e1c13c8607b9d5b12de6c30d536b9db4
5
5
  SHA512:
6
- metadata.gz: 6f0ea37d20e460b051bf425db54ccc1eea1a02502ab7a150b8608a16a8c2f2de35ee33e6af6a0e3fc039604d4915a9d3b587735d0d8f1a534b8b4bc82c408e60
7
- data.tar.gz: 7c658daae267a438027c3ed4c438b0e72b226830152e1edebfc864529e1ad9a1a5280581573687178081f1c2784f43c6bbbdfd5d16d3f05316ec7bbdbad4e275
6
+ metadata.gz: e294cfbab8f108aa2138b780636ae58ef0686b8a62554c8d986b3d621379c56e3f03644e1a778616b727e0259e82562fa02810ad0214009f9d2dd3a84c7e45c6
7
+ data.tar.gz: 96ff45770f8fe42842fa55466e84cfd3f340bc4e14827ee120605d45b6ce6f7e96d56e26e61af3970b73cd3f6a67e024ed639058011f3407f7dba76778a9e2a2
data/README.md CHANGED
@@ -64,6 +64,15 @@ $ sks -s [--select]
64
64
 
65
65
  Allows you to interactively select and set an OpenSSH key for your sessions.
66
66
 
67
+ ### List of OpenSSH Keys
68
+
69
+ ```bash
70
+ $ sks -l [--list]
71
+
72
+ ```
73
+
74
+ Display a list of OpenSSH keys.
75
+
67
76
  ### List Active OpenSSH Keys
68
77
 
69
78
  ```bash
@@ -92,10 +101,23 @@ The gem is available as open source under the terms of the [MIT License](https:/
92
101
 
93
102
  ## Development
94
103
 
95
- After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
104
+ **Debug**
96
105
 
97
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
106
+ ```bash
107
+ bundle exec sks [option]
108
+ ```
98
109
 
110
+ **Install locally to test**
111
+
112
+ ```bash
113
+ bin/install-local [version]
114
+ ```
115
+
116
+ **Release**
117
+
118
+ ```bash
119
+ bin/release [version]
120
+ ```
99
121
 
100
122
  ## Contributor
101
123
 
@@ -7,7 +7,10 @@ module SshKeySwitcher
7
7
  def pong
8
8
  server_names = SERVER_NAMES.map { |server| "git@#{server}" }
9
9
  result = prompt.select('Connect to', server_names, default: 'git@github.com')
10
- Cmd.exec("ssh -T #{result}", print: true)
10
+ stdout, stderr, status = Cmd.exec("ssh -T #{result}")
11
+ return prompt.ok(stdout) if status.success?
12
+
13
+ prompt.error(stderr)
11
14
  end
12
15
 
13
16
  private
@@ -21,8 +21,10 @@ module SshKeySwitcher
21
21
  return if path_open_ssh_key.nil?
22
22
 
23
23
  SshKeySwitcher::Utils::SshAgent.remove_all
24
- SshKeySwitcher::Utils::SshAgent.add(path_open_ssh_key)
25
- prompt.ok('OpenSSH key added successfully!')
24
+ _stdout, stderr, status = SshKeySwitcher::Utils::SshAgent.add(path_open_ssh_key)
25
+ return prompt.ok('Add OpenSSH key successfully!') if status.success?
26
+
27
+ prompt.error(stderr)
26
28
  end
27
29
 
28
30
  private
@@ -7,12 +7,8 @@ module SshKeySwitcher
7
7
  module Cmd
8
8
  module_function
9
9
 
10
- def exec(command, opts = {})
10
+ def exec(command, _opts = {})
11
11
  stdout, stderr, status = Open3.capture3(command)
12
- if opts[:print]
13
- print stderr
14
- print stdout
15
- end
16
12
  [stdout, stderr, status]
17
13
  end
18
14
  end
@@ -15,7 +15,7 @@ module SshKeySwitcher
15
15
 
16
16
  def fetch_private_ssh_keys_via_header
17
17
  ssh_dir = File.expand_path(SSH_DIR)
18
- files = Dir.glob("#{ssh_dir}/**/*").select do |file|
18
+ Dir.glob("#{ssh_dir}/**/*").select do |file|
19
19
  next if File.directory?(file)
20
20
 
21
21
  File.open(file, 'rb') do |f|
@@ -3,6 +3,10 @@
3
3
  module SshKeySwitcher
4
4
  module Utils
5
5
  class SshAgent
6
+ def self.start_ssh_agent
7
+ Cmd.exec('eval $(ssh-agent -s)')
8
+ end
9
+
6
10
  def self.add(private_key)
7
11
  Cmd.exec("ssh-add #{private_key}")
8
12
  end
@@ -14,6 +18,11 @@ module SshKeySwitcher
14
18
  def self.del(path)
15
19
  Cmd.exec("ssh-add -d #{path}")
16
20
  end
21
+
22
+ def self.start_ssh_agent_if_needed
23
+ ssh_agent_pid = ENV.fetch('SSH_AGENT_PID', nil)
24
+ start_ssh_agent if ssh_agent_pid.nil? || !system("ps -p #{ssh_agent_pid} > /dev/null 2>&1")
25
+ end
17
26
  end
18
27
  end
19
28
  end
@@ -1,3 +1,3 @@
1
1
  module SshKeySwitcher
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.5"
3
3
  end
@@ -10,6 +10,7 @@ module SshKeySwitcher
10
10
  class Error < StandardError; end
11
11
 
12
12
  class CLI < Thor
13
+ SshKeySwitcher::Utils::SshAgent.start_ssh_agent_if_needed
13
14
  ENV['THOR_SILENCE_DEPRECATION'] = 'true'
14
15
 
15
16
  desc 'version [-v, --version]', 'Show version'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ssh_key_switcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Minh Tang Q.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-21 00:00:00.000000000 Z
11
+ date: 2024-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -84,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  requirements: []
87
- rubygems_version: 3.1.4
87
+ rubygems_version: 3.4.6
88
88
  signing_key:
89
89
  specification_version: 4
90
90
  summary: A simple and efficient for managing and switching between OpenSSH keys seamlessly