1
1
class Kamal ::Configuration ::Env
2
2
include Kamal ::Configuration ::Validation
3
3
4
- attr_reader :context
5
- attr_reader :clear , :secret_keys
4
+ attr_reader :context , :clear , :secret_keys
6
5
delegate :argumentize , to : Kamal ::Utils
7
6
8
7
def initialize ( config :, secrets :, context : "env" )
@@ -11,19 +10,14 @@ def initialize(config:, secrets:, context: "env")
11
10
@secret_keys = config . fetch ( "secret" , [ ] )
12
11
@context = context
13
12
validate! config , context : context , with : Kamal ::Configuration ::Validator ::Env
14
- @secret_map = build_secret_map ( @secret_keys )
15
13
end
16
14
17
15
def clear_args
18
16
argumentize ( "--env" , clear )
19
17
end
20
18
21
- def secrets
22
- @resolved_secrets ||= resolve_secrets
23
- end
24
-
25
19
def secrets_io
26
- Kamal ::EnvFile . new ( secrets ) . to_io
20
+ Kamal ::EnvFile . new ( aliased_secrets ) . to_io
27
21
end
28
22
29
23
def merge ( other )
@@ -33,15 +27,12 @@ def merge(other)
33
27
end
34
28
35
29
private
36
- def build_secret_map ( secret_keys )
37
- Array ( secret_keys ) . to_h do |key |
38
- key_name , key_aliased_to = key . split ( ":" , 2 )
39
- key_aliased_to ||= key_name
40
- [ key_name , key_aliased_to ]
41
- end
30
+ def aliased_secrets
31
+ secret_keys . to_h { |key | extract_alias ( key ) } . transform_values { |secret_key | @secrets [ secret_key ] }
42
32
end
43
33
44
- def resolve_secrets
45
- @secret_map . transform_values { |secret_key | @secrets [ secret_key ] }
34
+ def extract_alias ( key )
35
+ key_name , key_aliased_to = key . split ( ":" , 2 )
36
+ [ key_name , key_aliased_to || key_name ]
46
37
end
47
38
end
0 commit comments