mr-shipper 0.0.4 → 0.0.5
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/lib/shipper/config.rb +27 -3
- data/lib/shipper/deploy.rb +1 -1
- data/lib/shipper/executor.rb +4 -4
- data/lib/shipper/run.rb +2 -1
- data/lib/shipper/service.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31a86d4c088e0331f1ee1a54b56bec7ad625064c32da630c0c2e1d18089df45d
|
4
|
+
data.tar.gz: bc8d182606080ab3be29c8761d6d38b7416ff5b349cc5213a07b4ff3f14261ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f110e2d4973736e313503c6d5a032cd33ddda218eaa43f662accabd970cdf33ca36cd0c9baa5a14f40381524eab9410e781b633cd4385ae0efa6e4fe4bb2118
|
7
|
+
data.tar.gz: c8dbaeea4aa1deeaec1b7c4ad9a10a6e9c60dee949d5914f93177bb8747f845f05e09fe8d7615c11db35259189f31371ae198abb9c4ade9e2d09a0b6e839f2a1
|
data/lib/shipper/config.rb
CHANGED
@@ -6,11 +6,35 @@ require 'yaml'
|
|
6
6
|
|
7
7
|
module Shipper
|
8
8
|
class Config < ::OpenStruct
|
9
|
-
|
9
|
+
def initialize(config_path: nil, env: nil)
|
10
|
+
config_path ||= "#{Dir.pwd}/shipper.yml"
|
11
|
+
env ||= 'production'
|
10
12
|
|
11
|
-
|
12
|
-
config = ::YAML::load_file("#{Dir.pwd}/shipper.yml")
|
13
|
+
config = load_env_config(config_path, env)
|
13
14
|
super(config)
|
14
15
|
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def load_env_config(config_path, env)
|
20
|
+
full_config = ::YAML.load_file(config_path)
|
21
|
+
check_env_available!(full_config, env)
|
22
|
+
|
23
|
+
hosts = full_config.delete('hosts')
|
24
|
+
services = full_config.delete('services')
|
25
|
+
|
26
|
+
full_config['host'] = hosts[env]
|
27
|
+
full_config['services'] = services[env]
|
28
|
+
full_config
|
29
|
+
end
|
30
|
+
|
31
|
+
def check_env_available!(config, env)
|
32
|
+
services = !config.dig('services', env).nil?
|
33
|
+
hosts = !config.dig('hosts', env).nil?
|
34
|
+
|
35
|
+
puts "Error: No host available for env '#{env}'" unless hosts
|
36
|
+
puts "Error: No services available for env '#{env}'" unless services
|
37
|
+
exit(0) if !hosts || !services
|
38
|
+
end
|
15
39
|
end
|
16
40
|
end
|
data/lib/shipper/deploy.rb
CHANGED
data/lib/shipper/executor.rb
CHANGED
@@ -25,7 +25,7 @@ module Shipper
|
|
25
25
|
def exec_host(cmd)
|
26
26
|
logger.bold("Exec host '#{cmd}'")
|
27
27
|
|
28
|
-
host_bash.exec!("cd #{path}; #{cmd}") do |
|
28
|
+
host_bash.exec!("cd #{path}; #{cmd}") do |_channel, _stream, data|
|
29
29
|
logger.puts(data)
|
30
30
|
end
|
31
31
|
end
|
@@ -34,11 +34,11 @@ module Shipper
|
|
34
34
|
logger.bold("Exec local '#{cmd}'")
|
35
35
|
|
36
36
|
Dir.chdir(path) do
|
37
|
-
Open3.popen3(cmd) do |
|
37
|
+
Open3.popen3(cmd) do |_stdin, stdout, stderr, wait_thread|
|
38
38
|
logger.puts(stdout.gets)
|
39
|
-
|
39
|
+
logger.puts(stderr.gets)
|
40
40
|
|
41
|
-
|
41
|
+
wait_thread.value
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
data/lib/shipper/run.rb
CHANGED
@@ -5,8 +5,9 @@ module Shipper
|
|
5
5
|
attr_reader :config, :options
|
6
6
|
|
7
7
|
def initialize(options)
|
8
|
+
@config = ::Shipper::Config.new(env: options[0] || 'production')
|
8
9
|
@options = options.empty? ? nil : options
|
9
|
-
@
|
10
|
+
@options&.delete(0) # remove env
|
10
11
|
end
|
11
12
|
|
12
13
|
def perform
|
data/lib/shipper/service.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mr-shipper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rostyslav Safonov
|
@@ -11,33 +11,33 @@ cert_chain: []
|
|
11
11
|
date: 2019-06-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: colorize
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.8.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.8.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: net-ssh
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '5.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '5.1'
|
41
41
|
description: The simple way to deploy docker-compose based apps
|
42
42
|
email: elhowm@gmail.com
|
43
43
|
executables:
|
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
requirements: []
|
78
|
-
rubygems_version: 3.0.
|
78
|
+
rubygems_version: 3.0.6
|
79
79
|
signing_key:
|
80
80
|
specification_version: 4
|
81
81
|
summary: Docker shipping
|