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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55d5a06106fbacfedcb2f6fab9517028453f90f6fbf0f0b8c3eda23c1092d0d3
4
- data.tar.gz: 3508abce4e446048dd3bba5d85ad46c76fba5a2daafb4e1ff32f1986317b57c1
3
+ metadata.gz: 25076e926da29d61b22b6be14379e4e9e23af5bf1146c2c5d0ef64f917023a24
4
+ data.tar.gz: 023ed0ce2c46e14303f1fefdba6811e2401a7c9ac08f4bb44e288cce30943dae
5
5
  SHA512:
6
- metadata.gz: 1c10e24510f36e8fa58b11fc1e738e503583ca186501aa0233902d3a4e448e6a1df662f88e4e61a6c1808a4391f4500634e6d06fd77b67df15bff881039a6f6c
7
- data.tar.gz: 992a925a38a5a256497999e6d01d99883efaa011d321fcd8ca7429367932221cfcca071eea749ac48c1c496fa078d8360024e01ab26f669b510ed7e42b6b0230
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[:compose] = Class.new do
4
- def run(stack, args)
5
- $stdout.puts stack.to_compose
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
- stack_file = false
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') { |v| stack_file = v }
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' unless stack_file
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(stack_file) : stack_file
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
@@ -1,5 +1,5 @@
1
1
  module Dry
2
- module Stack
3
- VERSION = '0.0.2'
2
+ class Stack
3
+ VERSION = '0.0.3'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B