ops_team 0.9.4 → 0.9.9

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: eba253171a96866401be036ddbe987211414bd7f0ab1547efacc14880440effc
4
- data.tar.gz: c223d51872392ffa6850af158c6c7611e737c9f346ea7f04f10236ea4548febe
3
+ metadata.gz: bb111c3faceceae92cb8ae9907b7bf9da2c4984191bb22f47c3f14237c287c05
4
+ data.tar.gz: 8fa74d1592b5b66a66b637325d737358220157796b08e2ab64a8248275ef4624
5
5
  SHA512:
6
- metadata.gz: 438fe1576dc499d1474a47f38fb47a27206c6337b0f98dfc446c8605789e61b0987dc028f78626213a6ac6df3693a7ec41a6d7cef9e04a3db0ededb11cc25982
7
- data.tar.gz: b67faeea77ceea232adcadb7361d2070b2156e6a361d328c9981b5bbaf2aff61b78236d82ed6e719e98eff359fec20a83c7bbb796b2f4f5fe06494e147d76b82
6
+ metadata.gz: cea8868f0451869d8c4988b920c76d6c0d2ef6a9b878181da05ba8a7b35b66e5638c7062b4485e29f7fe9298b863c60f712fa12f7364fc723beada03e32bb323
7
+ data.tar.gz: 6dc28aae33915e08e482eb0373ba7babedf30b454cfd6189fefd9e3084a7ef0f61227ce8714e0a1433cc1b32ef08f28f56322f16da78051598a7d030058d34b3
@@ -23,7 +23,7 @@ class AppConfig
23
23
 
24
24
  def load
25
25
  config['environment']&.each do |key, value|
26
- ENV[key] = value.to_s
26
+ ENV[key] = value.is_a?(Hash) || value.is_a?(Array) ? value.to_json : value.to_s
27
27
  end
28
28
  end
29
29
 
@@ -18,6 +18,7 @@ module Builtins
18
18
 
19
19
  def run
20
20
  subprocess = fork do
21
+ set_bglog_file_permissions
21
22
  run_ops(args)
22
23
  end
23
24
 
@@ -26,6 +27,10 @@ module Builtins
26
27
 
27
28
  private
28
29
 
30
+ def set_bglog_file_permissions
31
+ File.new(Background.log_filename, "w").chmod(0o600)
32
+ end
33
+
29
34
  def run_ops(args)
30
35
  Output.notice("Running '#{args.join(' ')}' with stderr and stdout redirected to '#{Background.log_filename}'")
31
36
  $stdout.sync = $stderr.sync = true
@@ -15,7 +15,12 @@ module Builtins
15
15
 
16
16
  def run
17
17
  Secrets.load if Options.get("exec.load_secrets")
18
- Kernel.exec(@args.join(" "))
18
+
19
+ if args.any?
20
+ Kernel.exec(args.join(" "))
21
+ else
22
+ Output.error("Usage: ops exec '<command>'")
23
+ end
19
24
  end
20
25
  end
21
26
  end
@@ -20,7 +20,7 @@ module Dependencies
20
20
  end
21
21
 
22
22
  def should_meet?
23
- system("which apk")
23
+ `uname`.chomp == "Linux" && system("which apk &>/dev/null")
24
24
  end
25
25
  end
26
26
  end
@@ -18,7 +18,7 @@ module Dependencies
18
18
  end
19
19
 
20
20
  def should_meet?
21
- `uname`.chomp == "Linux"
21
+ `uname`.chomp == "Linux" && system("which apt-get &>/dev/null")
22
22
  end
23
23
 
24
24
  private
@@ -18,8 +18,9 @@ module Dependencies
18
18
  def meet
19
19
  Secrets.load
20
20
 
21
- FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name)
21
+ Output.warn("\nNo passphrase set for SSH key '#{priv_key_name}'") if passphrase.nil? || passphrase.empty?
22
22
 
23
+ FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name)
23
24
  generate_key unless File.exist?(priv_key_name) && File.exist?(pub_key_name)
24
25
  add_key if success? && should_add_key?
25
26
  end
@@ -35,8 +36,6 @@ module Dependencies
35
36
  private
36
37
 
37
38
  def generate_key
38
- Output.warn("\nNo passphrase set for SSH key '#{priv_key_name}'") if passphrase.nil? || passphrase.empty?
39
-
40
39
  execute("ssh-keygen -b #{opt_key_size} -t #{opt_key_algo} -f #{priv_key_name} -q -N '#{passphrase}'")
41
40
  end
42
41
 
data/lib/ops.rb CHANGED
@@ -77,8 +77,16 @@ class Ops
77
77
  end
78
78
 
79
79
  def actions
80
- config["actions"].transform_values do |config|
81
- Action.new(config, @args)
80
+ @actions ||= begin
81
+ if config["actions"]
82
+ config["actions"]&.transform_values do |config|
83
+ Action.new(config, @args)
84
+ end
85
+ else
86
+ # only print this error if ops.yml had something in it
87
+ Output.warn("'ops.yml' has no 'actions' defined.") if config.any?
88
+ {}
89
+ end
82
90
  end
83
91
  end
84
92
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ops_team'
5
- s.version = '0.9.4'
5
+ s.version = '0.9.9'
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.9.4
4
+ version: 0.9.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - nickthecook@gmail.com