ops_team 0.7.0 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 011b0f2a12af0a58c9b48f53d2dd59b9a753eab0acd221ee2675c296c7b109d0
4
- data.tar.gz: 157963863ac30030921804a37f57ab332502ba465ac9c4ea139b18a297f0618e
3
+ metadata.gz: bb7e6762ba43bcdd97cc72b6bc5a65bf1280d5bb69ad52eab7455f580fe1f7ea
4
+ data.tar.gz: ac3102e06909139501ffef2468bc7005a3c7db215253136c5c08ff6a8d4fc2b2
5
5
  SHA512:
6
- metadata.gz: 9ce81eacd3adb1f7416a96adeabc38b244919ef8e8b17b349cea60e21a68535cc7aaeca57d8af1fb9fb1a03f7b94e98d423f018c2ecd2e9a4da556234ea64f65
7
- data.tar.gz: 0e0b772bdd70841e197079c93124f53a0d61ea8558add16a4b89e2e7340a1dbeba58222a3631165c03ed3ea35c85c7c596f9834aa0ba3e0445196b27b35e3f41
6
+ metadata.gz: 2195cba85da82ef592d6368300eaac3bfe856cec816352c82c0acb07c54488ead3abf9e3963d78c4f658c593714e7819834728fa75f6a4cf6432b131da46bb3b
7
+ data.tar.gz: 459f5ad1db23e335cb5ec9f15919a84546f66b98abd4fbb286dce0ddb66ae71c034d298507256317ca382f10572d9898c03fcdc2df741add7ad02811606ee3dd
@@ -29,7 +29,7 @@ module Builtins
29
29
  def meet_dependencies
30
30
  dependency_handler.dependencies.each do |dependency|
31
31
  # don't even output anything for dependencies that shouldn't be considered on this machine
32
- next unless dependency.should_meet?
32
+ next unless dependency&.should_meet?
33
33
 
34
34
  Output.status("[#{dependency.type}] #{dependency.name}")
35
35
 
@@ -9,7 +9,7 @@ module Dependencies
9
9
  end
10
10
 
11
11
  def meet
12
- execute("#{sudo_string}#{meet_command}")
12
+ execute("#{sudo_string}apt-get install -y #{name}")
13
13
  end
14
14
 
15
15
  def unmeet
@@ -28,9 +28,5 @@ module Dependencies
28
28
 
29
29
  "sudo "
30
30
  end
31
-
32
- def meet_command
33
- "apt-get install -y #{name}"
34
- end
35
31
  end
36
32
  end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'dependency'
4
+
5
+ module Dependencies
6
+ class Sshkey < Dependency
7
+ DEFAULT_KEY_SIZE = 2048
8
+ DEFAULT_KEY_ALGO = "rsa"
9
+
10
+ def met?
11
+ File.exist?(priv_key_name) && File.exist?(pub_key_name)
12
+ end
13
+
14
+ def meet
15
+ Secrets.load if Options.get("sshkey.load_secrets")
16
+
17
+ FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name)
18
+
19
+ execute("ssh-keygen -b #{key_size} -t #{key_algo} -f #{priv_key_name} -q -N '#{passphrase}'")
20
+ end
21
+
22
+ def unmeet
23
+ true
24
+ end
25
+
26
+ def should_meet?
27
+ true
28
+ end
29
+
30
+ private
31
+
32
+ def dir_name
33
+ `echo #{File.dirname(name)}`.chomp
34
+ end
35
+
36
+ def priv_key_name
37
+ `echo #{name}`.chomp
38
+ end
39
+
40
+ def pub_key_name
41
+ "#{priv_key_name}.pub"
42
+ end
43
+
44
+ def key_size
45
+ Options.get("sshkey.key_size") || DEFAULT_KEY_SIZE
46
+ end
47
+
48
+ def key_algo
49
+ Options.get("sshkey.key_algo") || DEFAULT_KEY_ALGO
50
+ end
51
+
52
+ def passphrase
53
+ `echo #{configured_passphrase}`.chomp
54
+ end
55
+
56
+ def configured_passphrase
57
+ Options.get("sshkey.passphrase")
58
+ end
59
+ end
60
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ops_team'
5
- s.version = '0.7.0'
5
+ s.version = '0.8.0'
6
6
  s.authors = [
7
7
  'nickthecook@gmail.com'
8
8
  ]
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.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nickthecook@gmail.com
@@ -84,6 +84,7 @@ files:
84
84
  - lib/dependencies/dir.rb
85
85
  - lib/dependencies/docker.rb
86
86
  - lib/dependencies/gem.rb
87
+ - lib/dependencies/sshkey.rb
87
88
  - lib/dependency.rb
88
89
  - lib/environment.rb
89
90
  - lib/ops.rb