capistrano-ops 1.0.3 → 1.0.4
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6028f991e964a7ce6f029c3878b1c36b322802df80013019de85c1f9f9220f9f
|
4
|
+
data.tar.gz: 1664aea997e5db3daa236ea04758cb68bd3b34262e29faa90fa41564b2e88aeb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99aba98f09eee78b13851eec6ad35dd142fe1252903af6f3c5faf36260c02c693ef6245eddef8dfdefaac9965c9836b08de2620bf449716e47ad096380e26d3b
|
7
|
+
data.tar.gz: 69d303c90aad93e679ac797d90bf759f615e82431ef9a39008fad8c430aa66938cf1fd2b14dfb4249bc9c17bd8fbdf76786c00d0a1b226b3c588fe650024b1e8
|
@@ -56,20 +56,10 @@ module Capistrano
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
def local_figaro_yml(
|
59
|
+
def local_figaro_yml(_env)
|
60
60
|
@local_figaro_yml ||= YAML.load(ERB.new(File.read(figaro_yml_local_path)).result)
|
61
|
-
local_figaro = {}
|
62
|
-
deployment_env = fetch(:rails_env, env).to_s
|
63
|
-
|
64
|
-
@local_figaro_yml.each do |key, value|
|
65
|
-
if key == env
|
66
|
-
local_figaro[deployment_env] = @local_figaro_yml[key]
|
67
|
-
elsif !value.is_a?(Hash)
|
68
|
-
local_figaro[key] = @local_figaro_yml[key]
|
69
|
-
end
|
70
|
-
end
|
71
61
|
|
72
|
-
|
62
|
+
@local_figaro_yml || {}
|
73
63
|
end
|
74
64
|
|
75
65
|
def local_yaml
|
@@ -85,9 +75,18 @@ module Capistrano
|
|
85
75
|
end
|
86
76
|
|
87
77
|
def configs(yaml, env)
|
88
|
-
|
78
|
+
env_str = env.to_s
|
79
|
+
stage_yml = yaml[env_str]&.sort.to_h
|
89
80
|
global_yml = remove_nested(yaml)&.sort.to_h
|
90
|
-
|
81
|
+
|
82
|
+
other_stages_yml = stages.each_with_object({}) do |f, hash|
|
83
|
+
f_str = f.to_s
|
84
|
+
next if f_str == env_str
|
85
|
+
|
86
|
+
hash[f_str] = yaml[f_str]&.sort.to_h
|
87
|
+
end.compact
|
88
|
+
|
89
|
+
[global_yml, stage_yml, other_stages_yml]
|
91
90
|
end
|
92
91
|
|
93
92
|
def remove_nested(hash)
|
@@ -10,12 +10,12 @@ namespace :figaro_yml do
|
|
10
10
|
local = local_figaro_yml(figaro_yml_env)
|
11
11
|
|
12
12
|
# Split into stage-specific and global configurations
|
13
|
-
local_global_env, local_stage_env = configs(local, figaro_yml_env)
|
13
|
+
local_global_env, local_stage_env, _local_rest = configs(local, figaro_yml_env)
|
14
14
|
|
15
15
|
on release_roles :all do
|
16
16
|
# Read and parse remote application.yml
|
17
17
|
remote = YAML.safe_load(capture("cat #{figaro_yml_remote_path}"))
|
18
|
-
remote_global_env, remote_stage_env = configs(remote, figaro_yml_env)
|
18
|
+
remote_global_env, remote_stage_env, _remote_rest = configs(remote, figaro_yml_env)
|
19
19
|
|
20
20
|
# Compare hashes and handle nil results with empty hashes
|
21
21
|
differences_global = compare_hashes(local_global_env, remote_global_env)
|
@@ -8,11 +8,11 @@ namespace :figaro_yml do
|
|
8
8
|
invoke 'figaro_yml:create_local'
|
9
9
|
else
|
10
10
|
local_yml = local_figaro_yml(figaro_yml_env)
|
11
|
-
local_global, local_stage = configs(local_yml, figaro_yml_env)
|
11
|
+
local_global, local_stage, local_rest = configs(local_yml, figaro_yml_env)
|
12
12
|
on release_roles :all do
|
13
13
|
remote = capture "cat #{figaro_yml_remote_path}"
|
14
14
|
remote_yml = YAML.safe_load(remote).sort.to_h
|
15
|
-
remote_global, remote_stage = configs(remote_yml, figaro_yml_env)
|
15
|
+
remote_global, remote_stage, _remote_rest = configs(remote_yml, figaro_yml_env)
|
16
16
|
differences_global = compare_hashes(remote_global, local_global || {})
|
17
17
|
differences_stage = compare_hashes(remote_stage, local_stage || {})
|
18
18
|
|
@@ -29,10 +29,10 @@ namespace :figaro_yml do
|
|
29
29
|
global_overwrite = ask_to_overwrite('Overwrite local application.yml globals') if differences_global
|
30
30
|
puts 'Nothing written to local application.yml' unless stage_overwrite || global_overwrite
|
31
31
|
exit unless stage_overwrite || global_overwrite
|
32
|
-
|
33
32
|
# compose new yml
|
33
|
+
|
34
34
|
composed_yml = {}
|
35
|
-
composed_yml.merge!(
|
35
|
+
composed_yml.merge!(local_rest) # local yml is always included to avoid losing any data
|
36
36
|
composed_yml.merge!(local_global) unless global_overwrite
|
37
37
|
composed_yml.merge!(remote_global) if global_overwrite
|
38
38
|
composed_yml[figaro_yml_env.to_s] = stage_overwrite ? remote_stage : local_stage
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-ops
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Crusius
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-s3
|