deplomat 0.2.13 → 0.2.18
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/Gemfile +1 -7
- data/Gemfile.lock +11 -5
- data/VERSION +1 -1
- data/deplomat.gemspec +6 -0
- data/lib/deplomat/directives.rb +18 -4
- data/lib/deplomat/node.rb +8 -8
- data/lib/deplomat/remote_node.rb +1 -1
- metadata +60 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5be39a71be9b135b2a5bd233ce808833deb860517af15ae03bb6723c13fd5e35
|
4
|
+
data.tar.gz: 95e328842dce669a4a8845d562eaa2cb8b8fb2e4cdda52f5c7fd5a818a99c235
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: deb7c22ca7382f2376d3f0fbec59f6527514f631d4d6cf685551e2ac2f1dde028faf9949972bf302b444eed2d93f24ce070e6080fed5fd1228e19830da2c574c
|
7
|
+
data.tar.gz: 45f7bac07247125eb476a8b1355e869882c4822b4e8fcaf4ed6097689f0f9766e7e39024d3ec7c000757d4d63fc45853036ee10ec0efb55b25eb64b4dc594001
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,16 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
deplomat (0.2.18)
|
5
|
+
colorize
|
6
|
+
sys-proctable
|
7
|
+
|
1
8
|
GEM
|
2
9
|
remote: http://rubygems.org/
|
3
10
|
specs:
|
4
11
|
colorize (0.8.1)
|
5
12
|
diff-lcs (1.3)
|
6
|
-
ffi (1.
|
13
|
+
ffi (1.14.1)
|
7
14
|
rspec (3.8.0)
|
8
15
|
rspec-core (~> 3.8.0)
|
9
16
|
rspec-expectations (~> 3.8.0)
|
@@ -17,7 +24,7 @@ GEM
|
|
17
24
|
diff-lcs (>= 1.2.0, < 2.0)
|
18
25
|
rspec-support (~> 3.8.0)
|
19
26
|
rspec-support (3.8.2)
|
20
|
-
sys-proctable (1.2.
|
27
|
+
sys-proctable (1.2.6)
|
21
28
|
ffi
|
22
29
|
|
23
30
|
PLATFORMS
|
@@ -25,9 +32,8 @@ PLATFORMS
|
|
25
32
|
|
26
33
|
DEPENDENCIES
|
27
34
|
bundler (~> 2.0)
|
28
|
-
|
35
|
+
deplomat!
|
29
36
|
rspec
|
30
|
-
sys-proctable
|
31
37
|
|
32
38
|
BUNDLED WITH
|
33
|
-
2.
|
39
|
+
2.1.4
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.18
|
data/deplomat.gemspec
CHANGED
@@ -16,4 +16,10 @@ Gem::Specification.new do |spec|
|
|
16
16
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
17
|
end
|
18
18
|
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_dependency "colorize"
|
21
|
+
spec.add_dependency "sys-proctable"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
24
|
+
spec.add_development_dependency "rspec"
|
19
25
|
end
|
data/lib/deplomat/directives.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
$partials = {}
|
2
2
|
$deplomat_tasks = []
|
3
3
|
$deplomat_tasks_callbacks = {}
|
4
|
+
$log_tasks_status = true
|
4
5
|
|
5
6
|
def execute_in(env:)
|
6
7
|
yield if $env == env
|
@@ -26,26 +27,39 @@ def print_to_terminal(message, color: nil, newline: true)
|
|
26
27
|
$stdout.print message
|
27
28
|
end
|
28
29
|
|
30
|
+
def print_task_status(name, status)
|
31
|
+
print_to_terminal("\n--- #{name} task #{status.upcase}", color: :light_blue, newline: true)
|
32
|
+
end
|
33
|
+
|
29
34
|
# This wrapper allows us to insert external before/after
|
30
35
|
# tasks into every method executed by deplomat.
|
31
36
|
# Very useful for the one-time-tasks implementation.
|
32
37
|
def add_task(*tasks)
|
38
|
+
tasks.each do |t|
|
39
|
+
init_task_callbacks(t)
|
40
|
+
$deplomat_tasks_callbacks[t][:before] << lambda { print_task_status(t, "started") }
|
41
|
+
$deplomat_tasks_callbacks[t][:after] << lambda { print_task_status(t, "finished") }
|
42
|
+
end if $log_tasks_status
|
33
43
|
$deplomat_tasks += tasks
|
34
44
|
end
|
35
45
|
alias :add_tasks :add_task
|
36
46
|
|
37
47
|
def before_task(task_name, requisite_number, &block)
|
38
|
-
|
39
|
-
$deplomat_tasks_callbacks[task_name][:before] ||= []
|
48
|
+
init_task_callbacks(task_name)
|
40
49
|
$deplomat_tasks_callbacks[task_name][:before] << lambda { block.call; update_requisite_number!(requisite_number) }
|
41
50
|
end
|
42
51
|
|
43
52
|
def after_task(task_name, requisite_number, &block)
|
44
|
-
|
45
|
-
$deplomat_tasks_callbacks[task_name][:after] ||= []
|
53
|
+
init_task_callbacks(task_name)
|
46
54
|
$deplomat_tasks_callbacks[task_name][:after] << lambda { block.call; update_requisite_number!(requisite_number) }
|
47
55
|
end
|
48
56
|
|
57
|
+
def init_task_callbacks(task_name)
|
58
|
+
$deplomat_tasks_callbacks[task_name] ||= {}
|
59
|
+
$deplomat_tasks_callbacks[task_name][:before] ||= []
|
60
|
+
$deplomat_tasks_callbacks[task_name][:after] ||= []
|
61
|
+
end
|
62
|
+
|
49
63
|
def execute_tasks!
|
50
64
|
$deplomat_tasks.each do |t|
|
51
65
|
$deplomat_tasks_callbacks[t][:before].each { |block| block.call } if $deplomat_tasks_callbacks[t] && $deplomat_tasks_callbacks[t][:before]
|
data/lib/deplomat/node.rb
CHANGED
@@ -2,8 +2,7 @@ module Deplomat
|
|
2
2
|
|
3
3
|
class Node
|
4
4
|
|
5
|
-
attr_accessor :log_to, :raise_exceptions, :logfile, :wrap_in
|
6
|
-
attr_reader :current_path
|
5
|
+
attr_accessor :log_to, :raise_exceptions, :logfile, :wrap_in, :current_path
|
7
6
|
attr_writer :stdout_lines_to_ignore
|
8
7
|
|
9
8
|
def stdout_lines_to_ignore
|
@@ -14,11 +13,12 @@ module Deplomat
|
|
14
13
|
end.compact
|
15
14
|
end
|
16
15
|
|
17
|
-
def initialize(logfile: "#{Dir.pwd}/deplomat.log", log_to: [:stdout], path: nil, raise_exceptions: true)
|
16
|
+
def initialize(logfile: "#{Dir.pwd}/deplomat.log", log_to: [:stdout], path: nil, log_tasks_status: true, raise_exceptions: true)
|
18
17
|
@log_to = log_to
|
18
|
+
@log_tasks_status = log_tasks_status
|
19
19
|
@logfile = logfile
|
20
20
|
@raise_exceptions = raise_exceptions
|
21
|
-
@current_path = path if path_exist?(path)
|
21
|
+
@current_path = path.sub(/\/+\Z/, '') if !path.nil? && path_exist?(path)
|
22
22
|
end
|
23
23
|
|
24
24
|
def execute(command, path=@current_path, message: [], stdout_source: :stdout, log_command: true, _raise_exceptions: @raise_exceptions)
|
@@ -123,11 +123,11 @@ module Deplomat
|
|
123
123
|
@current_path = if path =~ /\A[\/~]/ || path.nil?
|
124
124
|
path
|
125
125
|
else
|
126
|
-
File.expand_path("#{@current_path}
|
126
|
+
File.expand_path("#{@current_path}/#{path}")
|
127
127
|
end
|
128
128
|
|
129
|
-
#
|
130
|
-
@current_path
|
129
|
+
# Remove / from the end of the current path
|
130
|
+
@current_path.sub!(/\/+\Z/, '')
|
131
131
|
end
|
132
132
|
|
133
133
|
def git_push(remote="origin", branch="master")
|
@@ -184,7 +184,7 @@ module Deplomat
|
|
184
184
|
entries_by_date.reverse! if leave[1] == :first
|
185
185
|
entries_by_date = entries_by_date[leave[0]..entries_by_date.length]
|
186
186
|
end
|
187
|
-
entries_by_date.each { |entry| remove("#{path}
|
187
|
+
entries_by_date.each { |entry| remove("#{path}/#{entry}") } if entries_by_date
|
188
188
|
end
|
189
189
|
end
|
190
190
|
|
data/lib/deplomat/remote_node.rb
CHANGED
@@ -24,7 +24,7 @@ module Deplomat
|
|
24
24
|
end
|
25
25
|
@pids.compact!
|
26
26
|
if @pids.empty?
|
27
|
-
raise
|
27
|
+
raise Deplomat::ExecutionError.new("ERROR: no ssh pid found for\n\t#{first_ssh_command}.\nThis is weird.")
|
28
28
|
elsif @pids.length > 1
|
29
29
|
log("Connected with ssh, host #{host}, but looks like another connection has been opened before...", color: "white")
|
30
30
|
log("connection pids: #{@pids.join(", ")}. We'll be closing them all when finished.", color: "white")
|
metadata
CHANGED
@@ -1,15 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deplomat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- romanitup
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2020-12-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: colorize
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sys-proctable
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
13
69
|
description: Stack agnostic deployment system that uses bash and ssh commands
|
14
70
|
email:
|
15
71
|
executables: []
|
@@ -53,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
53
109
|
- !ruby/object:Gem::Version
|
54
110
|
version: '0'
|
55
111
|
requirements: []
|
56
|
-
rubygems_version: 3.
|
112
|
+
rubygems_version: 3.1.2
|
57
113
|
signing_key:
|
58
114
|
specification_version: 4
|
59
115
|
summary: Deplomat
|