dip 3.4.0 → 3.4.1
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 +4 -4
- data/exe/dip +1 -1
- data/lib/dip/cli.rb +5 -7
- data/lib/dip/commands/run.rb +4 -4
- data/lib/dip/run_vars.rb +22 -30
- data/lib/dip/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f20dbfd7641a1820ae40df24486eb9a5c406263dd4e6505a180dc9c608907162
|
4
|
+
data.tar.gz: 28fc371a9a4f953d5f6beb06d023ea63e7feb94ec7c68559f134a86c369c2276
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a681f1c2a369f362360e94e6535e8df78cedc62d146d78fe6b7d65ecd901c366618faec79f74504aa17511a6ec28d29cb8f367296f653a4eed7506ef1162e3d
|
7
|
+
data.tar.gz: 48e7d213640ab4aaf879918e3a3600e8c06c1026e870a1a2c881447dfc5d48e93a25dcb63965ee47823049eda32cfb8655d60fd5e1fe2c460428269394a7cf87
|
data/exe/dip
CHANGED
data/lib/dip/cli.rb
CHANGED
@@ -11,6 +11,10 @@ module Dip
|
|
11
11
|
|
12
12
|
super
|
13
13
|
end
|
14
|
+
|
15
|
+
def start(argv)
|
16
|
+
super Dip::RunVars.call(argv, ENV)
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
stop_on_unknown_option! :up
|
@@ -61,18 +65,12 @@ module Dip
|
|
61
65
|
desc 'CMD or dip run CMD [OPTIONS]', 'Run configured command in a docker-compose service'
|
62
66
|
method_option :help, aliases: '-h', type: :boolean,
|
63
67
|
desc: 'Display usage information'
|
64
|
-
method_option :x_dip_run_vars,
|
65
|
-
type: :hash,
|
66
|
-
desc: "Enforce environment variables into container, recommended run like 'dip FOO=bar cmd'"
|
67
68
|
def run(cmd, subcmd = nil, *argv)
|
68
69
|
if options[:help]
|
69
70
|
invoke :help, ['run']
|
70
71
|
else
|
71
72
|
require_relative 'commands/run'
|
72
|
-
Dip::Commands::Run.
|
73
|
-
new(cmd, subcmd, argv,
|
74
|
-
run_vars: options[:x_dip_run_vars]).
|
75
|
-
execute
|
73
|
+
Dip::Commands::Run.new(cmd, subcmd, argv).execute
|
76
74
|
end
|
77
75
|
end
|
78
76
|
|
data/lib/dip/commands/run.rb
CHANGED
@@ -7,11 +7,10 @@ require_relative 'compose'
|
|
7
7
|
module Dip
|
8
8
|
module Commands
|
9
9
|
class Run < Dip::Command
|
10
|
-
def initialize(cmd, subcmd = nil, argv = []
|
10
|
+
def initialize(cmd, subcmd = nil, argv = [])
|
11
11
|
@cmd = cmd.to_sym
|
12
12
|
@subcmd = subcmd.to_sym if subcmd
|
13
13
|
@argv = argv
|
14
|
-
@run_vars = run_vars
|
15
14
|
@config = ::Dip.config.interaction
|
16
15
|
end
|
17
16
|
|
@@ -54,9 +53,10 @@ module Dip
|
|
54
53
|
end
|
55
54
|
|
56
55
|
def run_vars
|
57
|
-
|
56
|
+
run_vars = Dip::RunVars.env
|
57
|
+
return [] unless run_vars
|
58
58
|
|
59
|
-
|
59
|
+
run_vars.map { |k, v| ["-e", "#{k}=#{v}"] }.flatten
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
data/lib/dip/run_vars.rb
CHANGED
@@ -2,60 +2,52 @@
|
|
2
2
|
|
3
3
|
module Dip
|
4
4
|
class RunVars
|
5
|
-
attr_reader :argv, :env
|
5
|
+
attr_reader :argv, :env
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
class << self
|
8
|
+
attr_accessor :env
|
9
|
+
|
10
|
+
def call(*args)
|
11
|
+
new(*args).call
|
12
|
+
end
|
9
13
|
end
|
10
14
|
|
11
15
|
def initialize(argv, env = ENV)
|
12
16
|
@argv = argv
|
13
17
|
@env = env
|
14
|
-
|
15
|
-
@result_argv = []
|
18
|
+
self.class.env = {}
|
16
19
|
end
|
17
20
|
|
18
21
|
def call
|
19
22
|
extract_new_env_vars
|
20
|
-
extract_passed_env_vars
|
21
|
-
|
22
|
-
result_argv.push(*argv_env_vars) unless env_vars.empty?
|
23
|
-
|
24
|
-
result_argv
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
def extract_new_env_vars
|
30
|
-
early_envs = env['DIP_EARLY_ENVS'].to_s
|
31
|
-
return if early_envs.empty?
|
32
|
-
|
33
|
-
(env.keys - early_envs.split(',')).each do |key|
|
34
|
-
next if key.start_with?("DIP_")
|
35
23
|
|
36
|
-
env_vars[key] = env[key]
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def extract_passed_env_vars
|
41
24
|
stop_parse = false
|
25
|
+
result_argv = []
|
42
26
|
|
43
27
|
argv.each do |arg|
|
44
28
|
if !stop_parse && arg.include?("=")
|
45
29
|
key, val = arg.split("=", 2)
|
46
|
-
|
30
|
+
self.class.env[key] = val
|
47
31
|
else
|
48
32
|
result_argv << arg
|
49
33
|
stop_parse ||= true
|
50
34
|
end
|
51
35
|
end
|
36
|
+
|
37
|
+
result_argv
|
52
38
|
end
|
53
39
|
|
54
|
-
|
55
|
-
result = env_vars.map { |key, val| "#{key}:#{val}" }
|
56
|
-
result[0] = "--x-dip-run-vars=#{result[0]}"
|
40
|
+
private
|
57
41
|
|
58
|
-
|
42
|
+
def extract_new_env_vars
|
43
|
+
early_envs = env['DIP_EARLY_ENVS'].to_s
|
44
|
+
return if early_envs.empty?
|
45
|
+
|
46
|
+
(env.keys - early_envs.split(',')).each do |key|
|
47
|
+
next if key.start_with?("DIP_") || key.start_with?("_")
|
48
|
+
|
49
|
+
self.class.env[key] = env[key]
|
50
|
+
end
|
59
51
|
end
|
60
52
|
end
|
61
53
|
end
|
data/lib/dip/version.rb
CHANGED