dry-stack 0.0.1 → 0.0.2
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/bin/dry-stack +3 -2
- data/bin/stack.drs +19 -0
- data/lib/dry-stack/command_compose.rb +11 -0
- data/lib/dry-stack/command_line.rb +45 -0
- data/lib/dry-stack/stack.rb +1 -7
- data/lib/version.rb +5 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55d5a06106fbacfedcb2f6fab9517028453f90f6fbf0f0b8c3eda23c1092d0d3
|
4
|
+
data.tar.gz: 3508abce4e446048dd3bba5d85ad46c76fba5a2daafb4e1ff32f1986317b57c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c10e24510f36e8fa58b11fc1e738e503583ca186501aa0233902d3a4e448e6a1df662f88e4e61a6c1808a4391f4500634e6d06fd77b67df15bff881039a6f6c
|
7
|
+
data.tar.gz: 992a925a38a5a256497999e6d01d99883efaa011d321fcd8ca7429367932221cfcca071eea749ac48c1c496fa078d8360024e01ab26f669b510ed7e42b6b0230
|
data/bin/dry-stack
CHANGED
data/bin/stack.drs
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Stack :simple_stack do
|
2
|
+
|
3
|
+
HttpFront services: {admin: 'admin.*', operator: 'operator.*', reports: 'reports.*',
|
4
|
+
navigator: 'navigator.*', backend: 'admin.*, operator.*, navigator.*'}
|
5
|
+
|
6
|
+
PublishPorts admin: 4000, operator: 4001, navigator: 4002, reports: 7000 # mode: ingress, protocol: tcp
|
7
|
+
|
8
|
+
Service :admin, image: 'frontend', env: {APP: 'admin'}, ports: 5000
|
9
|
+
Service :operator, image: 'frontend', env: {APP: 'operator'}, ports: 5000
|
10
|
+
Service :navigator, image: 'frontend', env: {APP: 'navigator'}, ports: 5000
|
11
|
+
|
12
|
+
Service :backend, image: 'backend', ports: 3000 do
|
13
|
+
env APP_PORT: 3000, NODE_ENV: 'development', SKIP_GZ: true, DB_URL: '$DB_URL'
|
14
|
+
end
|
15
|
+
|
16
|
+
Service :reports, image: 'reports:0.1', env: {DB_URL: '$DB_URL'}, ports: 7000
|
17
|
+
|
18
|
+
Network :default, attachable: true
|
19
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
|
2
|
+
module Dry
|
3
|
+
module CommandLine
|
4
|
+
COMMANDS = {}
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def run(args)
|
8
|
+
stack_file = false
|
9
|
+
stack_file = STDIN.read unless $stdin.tty?
|
10
|
+
|
11
|
+
ARGV << '-h' if ARGV.empty?
|
12
|
+
OptionParser.new do |o|
|
13
|
+
usage = [
|
14
|
+
'dry-stack -s stackfile [options] COMMAND',
|
15
|
+
'cat stackfile | dry-stack COMMAND',
|
16
|
+
'dry-stack COMMAND < stack.drs'
|
17
|
+
]
|
18
|
+
o.banner = "Usage:\n\t#{usage.join "\n\t"}"
|
19
|
+
o.separator ''
|
20
|
+
o.separator 'Commands:'
|
21
|
+
COMMANDS.each { |name, cmd| o.separator "#{' ' * 5}#{name} - #{cmd.help}" }
|
22
|
+
|
23
|
+
o.separator ''
|
24
|
+
o.separator 'Options:'
|
25
|
+
|
26
|
+
# in all caps are required
|
27
|
+
o.on('-s', '--stack STACK_NAME', 'Stack file') { |v| stack_file = v }
|
28
|
+
o.on('-h', '--help') { puts o; exit }
|
29
|
+
o.parse! args
|
30
|
+
|
31
|
+
raise 'Stack file not defined' unless stack_file
|
32
|
+
|
33
|
+
command = args.shift
|
34
|
+
raise "Unknown command: #{command}" unless COMMANDS.key?(command.to_sym)
|
35
|
+
|
36
|
+
eval $stdin.tty? ? File.read(stack_file) : stack_file
|
37
|
+
COMMANDS[command.to_sym].run Stack.last_stack, args
|
38
|
+
rescue => e
|
39
|
+
puts e.message
|
40
|
+
exit 1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/dry-stack/stack.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'yaml'
|
3
|
+
require 'optparse'
|
3
4
|
|
4
5
|
module Dry
|
5
6
|
|
@@ -16,13 +17,6 @@ module Dry
|
|
16
17
|
class Stack
|
17
18
|
class << self
|
18
19
|
attr_accessor :last_stack
|
19
|
-
|
20
|
-
def command_line(argv)
|
21
|
-
if argv[1] == 'compose'
|
22
|
-
load argv[0]
|
23
|
-
$stdout.puts Stack.last_stack.to_compose
|
24
|
-
end
|
25
|
-
end
|
26
20
|
end
|
27
21
|
|
28
22
|
def initialize(name)
|
data/lib/version.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-stack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artyom B
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -102,8 +102,12 @@ extensions: []
|
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
104
|
- bin/dry-stack
|
105
|
+
- bin/stack.drs
|
105
106
|
- lib/dry-stack.rb
|
107
|
+
- lib/dry-stack/command_compose.rb
|
108
|
+
- lib/dry-stack/command_line.rb
|
106
109
|
- lib/dry-stack/stack.rb
|
110
|
+
- lib/version.rb
|
107
111
|
homepage: https://rubygems.org/gems/dry-stack
|
108
112
|
licenses:
|
109
113
|
- Nonstandard
|