ops_team 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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