dry-stack 0.0.2 → 0.0.3

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 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