ops_team 0.8.2 → 0.8.8

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: 8c91d50eeddf170724b335ec23089f3f5a452507f034e1edb8d9bce7fe419976
4
- data.tar.gz: 9fa1b82f605e2342cfe01e6127849c41bae745ff68464afcb294f0796e5b9b82
3
+ metadata.gz: 5d627dbbdad038718bd7fce64f99d37830b7e0c8ba7b6214fa0f4639e1997d1a
4
+ data.tar.gz: 213ca817d96f52c6666745b9ba4312a7ef97baa019e4176c1216b9f263ac5c37
5
5
  SHA512:
6
- metadata.gz: b1e9b52dcbcc50975dd2dd9e5369d4e1134822a7837a1132994c296fe32021c339d1457a1d9e92bbb6fdc5daa0581b761a13ce0f04ba92138821e41161f45209
7
- data.tar.gz: 7b94c375bb4a1614aff89cbe83a530864b9c9aff8d597a0945fb499629833ff8dd099eb986df610d458a3a009d6ea00ac1eaf6c9c92e063892c15ee0290810d5
6
+ metadata.gz: 1ffdb94e555112eed03b2f2ec6b9bb945e5ee97a89d4ec353279763a599599d0a97f36c2c6496674588af95392322732b7cbea94ddee2ed00915d4b3f02d9efe
7
+ data.tar.gz: 0f1fdbbcbd13fbeebfe8a4e32c99bc5885140b244e47c3b7e1c910768efea8875e4cbb7d93219eafb1d8ca6fcbed9b0d77da7c9782d951c37ba22f8847abd9cf
data/Gemfile CHANGED
@@ -7,6 +7,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
7
7
  gem "bcrypt_pbkdf"
8
8
  gem "colorize"
9
9
  gem "ed25519"
10
+ gem "ejson"
10
11
  gem "net-ssh"
11
12
  gem "require_all"
12
13
 
@@ -9,7 +9,7 @@ module Dependencies
9
9
  end
10
10
 
11
11
  def meet
12
- execute("mkdir #{name}")
12
+ execute("mkdir -p #{name}")
13
13
  end
14
14
 
15
15
  def unmeet
@@ -8,7 +8,7 @@ module Dependencies
8
8
  class Sshkey < Dependency
9
9
  DEFAULT_KEY_SIZE = 2048
10
10
  DEFAULT_KEY_ALGO = "rsa"
11
- DEFAULT_KEY_LIFETIME_S = 600
11
+ DEFAULT_KEY_LIFETIME_S = 3600
12
12
 
13
13
  def met?
14
14
  # we always need to at least update the key lifetime in the agent
@@ -21,7 +21,7 @@ module Dependencies
21
21
  FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name)
22
22
 
23
23
  generate_key unless File.exist?(priv_key_name) && File.exist?(pub_key_name)
24
- add_key if success? && ENV["SSH_AUTH_SOCK"]
24
+ add_key if success? && should_add_key?
25
25
  end
26
26
 
27
27
  def unmeet
@@ -35,19 +35,28 @@ module Dependencies
35
35
  private
36
36
 
37
37
  def generate_key
38
- execute("ssh-keygen -b #{key_size} -t #{key_algo} -f #{priv_key_name} -q -N '#{passphrase}'")
38
+ execute("ssh-keygen -b #{opt_key_size} -t #{opt_key_algo} -f #{priv_key_name} -q -N '#{passphrase}'")
39
39
  end
40
40
 
41
41
  def add_key
42
42
  Net::SSH::Authentication::Agent.connect.add_identity(
43
43
  unencrypted_key,
44
- "ops",
45
- lifetime: key_lifetime
44
+ key_comment,
45
+ lifetime: opt_key_lifetime
46
46
  )
47
47
  end
48
48
 
49
+ def should_add_key?
50
+ ENV["SSH_AUTH_SOCK"] && opt_add_keys?
51
+ end
52
+
49
53
  def unencrypted_key
50
- Net::SSH::KeyFactory.load_private_key(priv_key_name, passphrase)
54
+ Net::SSH::KeyFactory.load_private_key(priv_key_name, passphrase.empty? ? nil : passphrase)
55
+ end
56
+
57
+ def key_comment
58
+ # the current directory is usually named for the project
59
+ File.basename(::Dir.pwd)
51
60
  end
52
61
 
53
62
  def dir_name
@@ -62,23 +71,27 @@ module Dependencies
62
71
  "#{priv_key_name}.pub"
63
72
  end
64
73
 
65
- def key_size
74
+ def opt_key_size
66
75
  Options.get("sshkey.key_size") || DEFAULT_KEY_SIZE
67
76
  end
68
77
 
69
- def key_algo
78
+ def opt_key_algo
70
79
  DEFAULT_KEY_ALGO
71
80
  end
72
81
 
73
82
  def passphrase
74
- `echo #{configured_passphrase}`.chomp
83
+ `echo #{opt_passphrase}`.chomp
75
84
  end
76
85
 
77
- def configured_passphrase
86
+ def opt_passphrase
78
87
  Options.get("sshkey.passphrase")
79
88
  end
80
89
 
81
- def key_lifetime
90
+ def opt_add_keys?
91
+ Options.get("sshkey.add_keys").nil? ? true : Options.get("sshkey.add_keys")
92
+ end
93
+
94
+ def opt_key_lifetime
82
95
  Options.get("sshkey.key_lifetime") || DEFAULT_KEY_LIFETIME_S
83
96
  end
84
97
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ops_team'
5
- s.version = '0.8.2'
5
+ s.version = '0.8.8'
6
6
  s.authors = [
7
7
  'nickthecook@gmail.com'
8
8
  ]
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_runtime_dependency 'bcrypt_pbkdf', '~> 1.0', '>= 1.0.1'
26
26
  s.add_runtime_dependency 'colorize', '~> 0.8', '>= 0.8.1'
27
27
  s.add_runtime_dependency 'ed25519', '~> 1.2', '>= 1.2.4'
28
+ s.add_runtime_dependency 'ejson', '~> 1.2', '>= 1.2.1'
28
29
  s.add_runtime_dependency 'net-ssh', '~> 6.1', '>= 6.1.0'
29
30
  s.add_runtime_dependency 'require_all', '~> 1.1', '>= 1.1.6'
30
31
  s.license = 'GPL-3.0-only'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_team
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - nickthecook@gmail.com
@@ -70,6 +70,26 @@ dependencies:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: 1.2.4
73
+ - !ruby/object:Gem::Dependency
74
+ name: ejson
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.2'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.2.1
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.2'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 1.2.1
73
93
  - !ruby/object:Gem::Dependency
74
94
  name: net-ssh
75
95
  requirement: !ruby/object:Gem::Requirement