ops_team 1.3.1 → 1.4.1

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: 87d7f989252a5d65c3700079656d9067f638168efb95e42e6c65f8f45e782c6b
4
- data.tar.gz: 73b1e94053e65c3c49d3cf6160d1efa83102d55d96e80c12a9c77599cee7889f
3
+ metadata.gz: '0733758a5894345ad921779b037a61bbfb19c64d23e8ac9abe6ae440fedafc8b'
4
+ data.tar.gz: b87cdb544558b4173c9f9e0c82537ca26f8f4d168855fcfc2154229f7980cb58
5
5
  SHA512:
6
- metadata.gz: fabbbf8dcf87a66a5e949f7c1adc8c6ca4557616c221dd0f2213a14046cd0a484c38e2fdc0a1c974bb3803d58b07addccd788f34d21f8d39f784c7080780ab59
7
- data.tar.gz: 0b515c670bc053ca122b31006ed7c32494e15bbc2c1302df0ad3c8b867eec827022d5efe466a3c860e172e8b27303a517f6e52637aa228f5fa035d5986f0eda2
6
+ metadata.gz: bbf9e515dc0514e7e3a1f1eaa27ffc2467a0b4872d6202d006ef12351f4166d9822e04d8f438d9d1b4d3d0c6369c8c9da01dcd72c09e7f04974f6e67f3448765
7
+ data.tar.gz: 200a4b8c30cebdc8a39f87394eb1241387b147deebc23491ccd88de58cc916c3d934c6f301d5169c0869610d4ad9f0c382fff2101fc504df909766322049ddd3
data/lib/app_config.rb CHANGED
@@ -42,7 +42,7 @@ class AppConfig
42
42
  def config
43
43
  @config ||= file_contents ? YAML.safe_load(file_contents) : {}
44
44
  rescue YAML::SyntaxError => e
45
- raise ParsingError, "Error parsing config data: #{e}"
45
+ raise ParsingError, "#{@filename}: #{e}"
46
46
  end
47
47
 
48
48
  def file_contents
@@ -47,7 +47,7 @@ module Builtins
47
47
 
48
48
  def timer_task
49
49
  @timer_task ||= Concurrent::TimerTask.new(run_now: true, execution_interval: 1) do
50
- Output.print("\r#{seconds_left}")
50
+ Output.print("\r \r#{seconds_left}")
51
51
  end
52
52
  end
53
53
 
data/lib/builtins/up.rb CHANGED
@@ -23,7 +23,7 @@ module Builtins
23
23
  private
24
24
 
25
25
  def dependency_handler
26
- Helpers::DependencyHandler.new(@config["dependencies"])
26
+ Helpers::DependencyHandler.new(deps_to_meet)
27
27
  end
28
28
 
29
29
  def meet_dependencies
@@ -49,5 +49,11 @@ module Builtins
49
49
  Output.out(dependency.output)
50
50
  end
51
51
  end
52
+
53
+ def deps_to_meet
54
+ return @config["dependencies"] if @args.empty?
55
+
56
+ return @config["dependencies"].select { |dep, names| @args.include?(dep) }
57
+ end
52
58
  end
53
59
  end
@@ -9,6 +9,7 @@ module Dependencies
9
9
  DEFAULT_KEY_SIZE = 2048
10
10
  DEFAULT_KEY_ALGO = "rsa"
11
11
  DEFAULT_KEY_LIFETIME_S = 3600
12
+ DEFAULT_KEY_FILE_COMMENT_COMMAND = "$USER@`hostname -s`"
12
13
 
13
14
  def met?
14
15
  # we always need to at least update the key lifetime in the agent
@@ -36,7 +37,9 @@ module Dependencies
36
37
  private
37
38
 
38
39
  def generate_key
39
- execute("ssh-keygen -b #{opt_key_size} -t #{opt_key_algo} -f #{priv_key_name} -q -N '#{passphrase}'")
40
+ execute(
41
+ "ssh-keygen -b #{opt_key_size} -t #{opt_key_algo} -f #{priv_key_name} -q -N '#{passphrase}' -C '#{key_file_comment}'"
42
+ )
40
43
  end
41
44
 
42
45
  def add_key
@@ -59,6 +62,10 @@ module Dependencies
59
62
  Ops.project_name
60
63
  end
61
64
 
65
+ def key_file_comment
66
+ `echo #{opt_key_file_comment_command}`.chomp
67
+ end
68
+
62
69
  def dir_name
63
70
  `echo #{File.dirname(name)}`.chomp
64
71
  end
@@ -107,5 +114,9 @@ module Dependencies
107
114
  def opt_key_lifetime
108
115
  Options.get("sshkey.key_lifetime") || DEFAULT_KEY_LIFETIME_S
109
116
  end
117
+
118
+ def opt_key_file_comment_command
119
+ Options.get("sshkey.key_file_comment") || DEFAULT_KEY_FILE_COMMENT_COMMAND
120
+ end
110
121
  end
111
122
  end
data/lib/secrets.rb CHANGED
@@ -53,7 +53,7 @@ class Secrets < AppConfig
53
53
  out, err, _status = Open3.capture3("ejson decrypt #{@filename}")
54
54
 
55
55
  # TODO: err is only nil in testing, but I can't figure out why the stubbing isn't working
56
- raise ParsingError, "Error decrypting EJSON file: #{err}" unless err.nil? || err.empty?
56
+ raise ParsingError, "#{@filename}: #{err}" unless err.nil? || err.empty?
57
57
 
58
58
  out
59
59
  end
data/ops_team.gemspec CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ops_team'
5
- s.version = '1.3.1'
5
+ s.version = '1.4.1'
6
6
  s.authors = [
7
7
  'nickthecook@gmail.com'
8
8
  ]
9
- s.date = '2020-08-12'
10
- s.summary = 'ops_team handles basic operations tasks for your project, driven by YAML config'
9
+ s.date = '2021-05-05'
10
+ s.summary = 'ops_team handles basic operations tasks for your project, driven by self-documenting YAML config'
11
11
  s.homepage = 'https://github.com/nickthecook/ops'
12
12
  s.files = Dir[
13
13
  'Gemfile',
@@ -25,10 +25,10 @@ Gem::Specification.new do |s|
25
25
  s.required_ruby_version = '~> 2.5'
26
26
  s.add_runtime_dependency 'bcrypt_pbkdf', '~> 1.0', '>= 1.0.1'
27
27
  s.add_runtime_dependency 'colorize', '~> 0.8', '>= 0.8.1'
28
+ s.add_runtime_dependency 'concurrent-ruby', '~> 1.1', '>= 1.1.7'
28
29
  s.add_runtime_dependency 'ed25519', '~> 1.2', '>= 1.2.4'
29
30
  s.add_runtime_dependency 'ejson', '~> 1.2', '>= 1.2.1'
30
31
  s.add_runtime_dependency 'net-ssh', '~> 6.1', '>= 6.1.0'
31
32
  s.add_runtime_dependency 'require_all', '~> 1.1', '>= 1.1.6'
32
- s.add_runtime_dependency 'concurrent-ruby', '~> 1.1', '>= 1.1.7'
33
33
  s.license = 'GPL-3.0-only'
34
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_team
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - nickthecook@gmail.com
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-12 00:00:00.000000000 Z
11
+ date: 2021-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt_pbkdf
@@ -50,6 +50,26 @@ dependencies:
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
52
  version: 0.8.1
53
+ - !ruby/object:Gem::Dependency
54
+ name: concurrent-ruby
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.1'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.1.7
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.1'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.1.7
53
73
  - !ruby/object:Gem::Dependency
54
74
  name: ed25519
55
75
  requirement: !ruby/object:Gem::Requirement
@@ -130,28 +150,8 @@ dependencies:
130
150
  - - ">="
131
151
  - !ruby/object:Gem::Version
132
152
  version: 1.1.6
133
- - !ruby/object:Gem::Dependency
134
- name: concurrent-ruby
135
- requirement: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: '1.1'
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- version: 1.1.7
143
- type: :runtime
144
- prerelease: false
145
- version_requirements: !ruby/object:Gem::Requirement
146
- requirements:
147
- - - "~>"
148
- - !ruby/object:Gem::Version
149
- version: '1.1'
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: 1.1.7
153
- description:
154
- email:
153
+ description:
154
+ email:
155
155
  executables:
156
156
  - ops
157
157
  extensions: []
@@ -211,7 +211,7 @@ homepage: https://github.com/nickthecook/ops
211
211
  licenses:
212
212
  - GPL-3.0-only
213
213
  metadata: {}
214
- post_install_message:
214
+ post_install_message:
215
215
  rdoc_options: []
216
216
  require_paths:
217
217
  - lib
@@ -227,8 +227,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
227
  version: '0'
228
228
  requirements: []
229
229
  rubygems_version: 3.1.2
230
- signing_key:
230
+ signing_key:
231
231
  specification_version: 4
232
- summary: ops_team handles basic operations tasks for your project, driven by YAML
233
- config
232
+ summary: ops_team handles basic operations tasks for your project, driven by self-documenting
233
+ YAML config
234
234
  test_files: []