dry-stack 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dry-stack/command_compose.rb +6 -3
- data/lib/dry-stack/command_line.rb +22 -8
- data/lib/version.rb +2 -2
- 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: 25076e926da29d61b22b6be14379e4e9e23af5bf1146c2c5d0ef64f917023a24
|
4
|
+
data.tar.gz: 023ed0ce2c46e14303f1fefdba6811e2401a7c9ac08f4bb44e288cce30943dae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fc1f361dbde144d87b4a3c0d90b859940f0fca6d3f84c02fd28bf9a4849fb373e1bb8f8a3bc2d0665c22106ba642481e1b8c85adc71199e719c99b95249e8f2
|
7
|
+
data.tar.gz: bc466a6b44eeab9f10a9596316f2b4563c63d42b8632e81f4cc90af87d1ba0117ea4d5079c8554f5c8d8ba3da44013ec1160a0a9560f9cbcf92e53960e06eea9
|
@@ -1,8 +1,11 @@
|
|
1
1
|
require_relative 'command_line'
|
2
2
|
|
3
|
-
Dry::CommandLine::COMMANDS[:
|
4
|
-
def run(stack, args)
|
5
|
-
|
3
|
+
Dry::CommandLine::COMMANDS[:to_compose] = Class.new do
|
4
|
+
def run(stack, params, args)
|
5
|
+
yaml = stack.to_compose.lines[1..].join
|
6
|
+
|
7
|
+
# substitute ENV variables
|
8
|
+
params[:'no-env'] ? $stdout.puts(yaml) : system("echo \"#{yaml}\"")
|
6
9
|
end
|
7
10
|
|
8
11
|
def help = 'Print stack in docker compose format'
|
@@ -1,15 +1,27 @@
|
|
1
|
+
require_relative '../version'
|
1
2
|
|
2
3
|
module Dry
|
3
4
|
module CommandLine
|
4
5
|
COMMANDS = {}
|
5
6
|
|
6
7
|
class << self
|
8
|
+
def load_env
|
9
|
+
File.read('.env').lines.map(&:strip).grep_v(/^\s*#/).reject(&:empty?)
|
10
|
+
.map {_1.split('=').map(&:strip).tap { |k,v|
|
11
|
+
ENV[k] = v
|
12
|
+
}}.to_h
|
13
|
+
rescue =>e
|
14
|
+
puts "Load env error: #{e.message}"
|
15
|
+
raise 'Invalid .env file'
|
16
|
+
end
|
17
|
+
|
7
18
|
def run(args)
|
8
|
-
|
9
|
-
stack_file = STDIN.read unless $stdin.tty?
|
19
|
+
params = {}
|
10
20
|
|
11
21
|
ARGV << '-h' if ARGV.empty?
|
12
22
|
OptionParser.new do |o|
|
23
|
+
o.version = "v#{Dry::Stack::VERSION}"
|
24
|
+
|
13
25
|
usage = [
|
14
26
|
'dry-stack -s stackfile [options] COMMAND',
|
15
27
|
'cat stackfile | dry-stack COMMAND',
|
@@ -24,17 +36,19 @@ module Dry
|
|
24
36
|
o.separator 'Options:'
|
25
37
|
|
26
38
|
# in all caps are required
|
27
|
-
o.on('-s', '--stack STACK_NAME', 'Stack file')
|
39
|
+
o.on('-s', '--stack STACK_NAME', 'Stack file')
|
40
|
+
o.on('-e', '--env', 'Load .env file') { load_env }
|
41
|
+
o.on('-n', '--no-env', 'Do not process env variables') { true }
|
28
42
|
o.on('-h', '--help') { puts o; exit }
|
29
|
-
o.parse! args
|
43
|
+
o.parse! args, into: params
|
30
44
|
|
31
|
-
raise 'Stack file not defined'
|
45
|
+
raise 'Stack file not defined' if $stdin.tty? && !params[:stack]
|
32
46
|
|
33
|
-
command = args.shift
|
47
|
+
command = args.shift || ''
|
34
48
|
raise "Unknown command: #{command}" unless COMMANDS.key?(command.to_sym)
|
35
49
|
|
36
|
-
eval $stdin.tty? ? File.read(
|
37
|
-
COMMANDS[command.to_sym].run Stack.last_stack, args
|
50
|
+
eval $stdin.tty? ? File.read(params[:stack]) : STDIN.read
|
51
|
+
COMMANDS[command.to_sym].run Stack.last_stack, params, args
|
38
52
|
rescue => e
|
39
53
|
puts e.message
|
40
54
|
exit 1
|
data/lib/version.rb
CHANGED