ssh-locate 0.1.0 → 0.3.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: cc7830c637948887cfa9eede807ab7711c35a59c01639dacfe5a91f63ac0b741
4
+ data.tar.gz: 46d307a723df4ba12ad17e15281025e9267f702c18d082fbaab955de8206861c
5
+ SHA512:
6
+ metadata.gz: bf11790093cf5c3b403970686e605c4955768fbca8a76bb1f181f99a2e634a672cff9f433372c228729a5157aa4c1eee3ccd3131d6a1618a4f0aae791460b435
7
+ data.tar.gz: 705054a24018b873d254c51ae650a167381133c5c0e68f4f4d52f2c66dc2eaf88a3ec9c3cb2b698532bd916e297886984b34258612490b1472d920544ca30675
data/.travis.yml CHANGED
@@ -1,2 +1,4 @@
1
- rvm: 1.9.2
1
+ rvm:
2
+ - 2.6.3
3
+
2
4
 
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "http://rubygems.org"
1
+ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
@@ -8,7 +8,8 @@ group :dev do
8
8
  gem "rb-inotify"
9
9
  gem "libnotify"
10
10
  gem "cucumber"
11
- gem "aruba", git: "git://github.com/ameuret/aruba.git"
11
+ gem "aruba"
12
12
  gem "guard-cucumber"
13
+ gem "rspec-expectations"
13
14
  end
14
15
 
data/README.md CHANGED
@@ -13,7 +13,9 @@ Features
13
13
  SSH_AGENT_PID=12427; export SSH_AGENT_PID;
14
14
  echo Agent pid 12427;
15
15
  ```
16
-
16
+
17
+ - supports the Fish shell
18
+
17
19
  Installation
18
20
  ------------
19
21
 
@@ -31,6 +33,14 @@ In a later shell (or any process running for the user who owns the agent):
31
33
  $ eval `ssh-locate`
32
34
  Agent pid 13457
33
35
 
36
+ Fish startup
37
+ ------------
38
+
39
+ You can launch and activate an agent at startup by adding this to your config.fish:
40
+
41
+ ssh-agent -a /tmp/arnaud
42
+ source (ssh-locate|psub -f)
43
+
34
44
  Caveat
35
45
  ------
36
46
 
@@ -5,6 +5,7 @@ Feature: Agent IDs
5
5
 
6
6
  Scenario: Locate a running agent
7
7
  Given an ssh agent has been launched without parameters
8
+ Given the user's shell is Bash
8
9
  When I run `ssh-locate`
9
10
  Then the output should contain "SSH_AUTH_SOCK="
10
11
  And the output should contain "export SSH_AUTH_SOCK;"
@@ -20,6 +21,7 @@ Feature: Agent IDs
20
21
 
21
22
  Scenario: Locate an agent that shows its socket
22
23
  Given an ssh agent has been launched with a specific socket
24
+ Given the user's shell is Bash
23
25
  When I run `ssh-locate`
24
26
  Then the output should contain "SSH_AUTH_SOCK="
25
27
  And the output should contain "export SSH_AUTH_SOCK;"
@@ -43,3 +45,13 @@ Feature: Agent IDs
43
45
  And no ssh agent is running for me
44
46
  When I run `ssh-locate`
45
47
  Then the output should contain "no agent found"
48
+
49
+ Scenario: Support Fish
50
+ Given an ssh agent has been launched with a specific socket
51
+ Given the user's shell is Fish
52
+ When I run `ssh-locate`
53
+ Then the output should contain "set -x SSH_AUTH_SOCK"
54
+ And the output should contain "set -x SSH_AGENT_PID"
55
+ And the output should contain the correct agent PID
56
+ And the output should contain the correct agent socket
57
+
@@ -29,7 +29,7 @@ Given /^no ssh agent is running for me$/ do
29
29
  end
30
30
 
31
31
  Then /^the output should be empty$/ do
32
- assert_exact_output('', all_output)
32
+ expect(all_output).to be_empty
33
33
  end
34
34
 
35
35
  Then /^the output should contain the correct agent PID$/ do
@@ -39,3 +39,15 @@ end
39
39
  Then /^the output should contain the correct agent socket$/ do
40
40
  assert_partial_output( @agentSocket.to_s, all_output )
41
41
  end
42
+
43
+ Given("the user's shell is Fish") do
44
+ pending "Should check the actual parent process. Not just the default shell setting."
45
+ # passwdEntry = `getent passwd #{ENV['USER']}`
46
+ # expect(passwdEntry).to match(/fish$/)
47
+ end
48
+
49
+ Given("the user's shell is Bash") do
50
+ pending "Should check the actual parent process. Not just the default shell setting."
51
+ # passwdEntry = `getent passwd #{ENV['USER']}`
52
+ # expect(passwdEntry).to match(/fish$/)
53
+ end
@@ -15,12 +15,31 @@ module Net
15
15
 
16
16
  def print_shell_commands
17
17
  return unless @scanner.found?
18
- print "SSH_AUTH_SOCK=#{@scanner.agentSocket}; "
19
- puts "export SSH_AUTH_SOCK;"
20
- print "SSH_AGENT_PID=#{@scanner.agentPID}; "
21
- puts "export SSH_AGENT_PID;"
22
- puts "echo Agent pid #{@scanner.agentPID};"
18
+ if usingFish?
19
+ fishOutput
20
+ else
21
+ bashOutput
22
+ end
23
23
  end
24
+
25
+ private
26
+ def usingFish?
27
+ passwdEntry = `getent passwd #{ENV['USER']}`
28
+ passwdEntry =~ /fish$/
29
+ end
30
+
31
+ def bashOutput
32
+ print "SSH_AUTH_SOCK=#{@scanner.agentSocket};"
33
+ puts "export SSH_AUTH_SOCK;"
34
+ print "SSH_AGENT_PID=#{@scanner.agentPID};"
35
+ puts "export SSH_AGENT_PID;"
36
+ puts "echo Agent pid #{@scanner.agentPID};"
37
+ end
38
+
39
+ def fishOutput
40
+ puts "set -x SSH_AUTH_SOCK #{@scanner.agentSocket}"
41
+ puts "set -x SSH_AGENT_PID #{@scanner.agentPID}"
42
+ end
24
43
  end
25
44
 
26
45
  class Scanner
@@ -2,7 +2,7 @@ module Net
2
2
  module SSH
3
3
  module Locate
4
4
  # Honoring http://semver.org/
5
- VERSION = "0.1.0"
5
+ VERSION = "0.3.0"
6
6
  end
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,38 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ssh-locate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Arnaud Meuret
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2011-12-07 00:00:00.000000000Z
11
+ date: 2019-07-08 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: sys-proctable
16
- requirement: &72542240 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *72542240
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: thor
27
- requirement: &72541570 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *72541570
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  description: A CLI tool and its associated Ruby library that help you locate and reconnect
37
42
  to a running SSH agent. Useful in automation scenarios where multiple processes
38
43
  must repeatedly open SSH connections leveraging a one-time authentication pass
@@ -43,8 +48,8 @@ executables:
43
48
  extensions: []
44
49
  extra_rdoc_files: []
45
50
  files:
46
- - .gitignore
47
- - .travis.yml
51
+ - ".gitignore"
52
+ - ".travis.yml"
48
53
  - Gemfile
49
54
  - Guardfile
50
55
  - README.md
@@ -59,26 +64,28 @@ files:
59
64
  - ssh-locate.gemspec
60
65
  homepage: ''
61
66
  licenses: []
67
+ metadata: {}
62
68
  post_install_message:
63
69
  rdoc_options: []
64
70
  require_paths:
65
71
  - lib
66
72
  required_ruby_version: !ruby/object:Gem::Requirement
67
- none: false
68
73
  requirements:
69
- - - ! '>='
74
+ - - ">="
70
75
  - !ruby/object:Gem::Version
71
76
  version: '0'
72
77
  required_rubygems_version: !ruby/object:Gem::Requirement
73
- none: false
74
78
  requirements:
75
- - - ! '>='
79
+ - - ">="
76
80
  - !ruby/object:Gem::Version
77
81
  version: '0'
78
82
  requirements: []
79
- rubyforge_project: ssh-locate
80
- rubygems_version: 1.8.11
83
+ rubygems_version: 3.0.4
81
84
  signing_key:
82
- specification_version: 3
85
+ specification_version: 4
83
86
  summary: A tool (+ a Ruby lib) to locate a running SSH agent
84
- test_files: []
87
+ test_files:
88
+ - features/agent-ids.feature
89
+ - features/step_definitions/agent-ids.rb
90
+ - features/support/env.rb
91
+ - features/support/hooks.rb