dip 3.4.0 → 3.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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