kdeploy 1.2.41 → 1.3.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 +4 -4
- data/README.md +53 -1
- data/README_EN.md +86 -2
- data/lib/kdeploy/{cli.rb → cli/cli.rb} +74 -7
- data/lib/kdeploy/{help_formatter.rb → cli/help_formatter.rb} +5 -0
- data/lib/kdeploy/{configuration.rb → config/configuration.rb} +25 -1
- data/lib/kdeploy/{dsl.rb → dsl/dsl.rb} +9 -7
- data/lib/kdeploy/{initializer.rb → dsl/initializer.rb} +3 -3
- data/lib/kdeploy/errors.rb +7 -0
- data/lib/kdeploy/executor/command_executor.rb +155 -0
- data/lib/kdeploy/{executor.rb → executor/executor.rb} +151 -20
- data/lib/kdeploy/{output_formatter.rb → output/output_formatter.rb} +1 -0
- data/lib/kdeploy/{runner.rb → runner/runner.rb} +114 -43
- data/lib/kdeploy/{template.rb → template/template.rb} +25 -2
- data/lib/kdeploy/version.rb +1 -1
- data/lib/kdeploy.rb +12 -12
- metadata +14 -15
- data/lib/kdeploy/command_executor.rb +0 -102
- data/r.md +0 -1
- /data/lib/kdeploy/{file_filter.rb → executor/file_filter.rb} +0 -0
- /data/lib/kdeploy/{output.rb → output/output.rb} +0 -0
data/lib/kdeploy.rb
CHANGED
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
require_relative 'kdeploy/version'
|
|
4
4
|
require_relative 'kdeploy/errors'
|
|
5
|
-
require_relative 'kdeploy/configuration'
|
|
6
|
-
require_relative 'kdeploy/output'
|
|
5
|
+
require_relative 'kdeploy/config/configuration'
|
|
6
|
+
require_relative 'kdeploy/output/output'
|
|
7
7
|
require_relative 'kdeploy/banner'
|
|
8
|
-
require_relative 'kdeploy/file_filter'
|
|
9
|
-
require_relative 'kdeploy/dsl'
|
|
10
|
-
require_relative 'kdeploy/executor'
|
|
11
|
-
require_relative 'kdeploy/command_executor'
|
|
12
|
-
require_relative 'kdeploy/output_formatter'
|
|
13
|
-
require_relative 'kdeploy/help_formatter'
|
|
14
|
-
require_relative 'kdeploy/runner'
|
|
15
|
-
require_relative 'kdeploy/initializer'
|
|
16
|
-
require_relative 'kdeploy/template'
|
|
8
|
+
require_relative 'kdeploy/executor/file_filter'
|
|
9
|
+
require_relative 'kdeploy/dsl/dsl'
|
|
10
|
+
require_relative 'kdeploy/executor/executor'
|
|
11
|
+
require_relative 'kdeploy/executor/command_executor'
|
|
12
|
+
require_relative 'kdeploy/output/output_formatter'
|
|
13
|
+
require_relative 'kdeploy/cli/help_formatter'
|
|
14
|
+
require_relative 'kdeploy/runner/runner'
|
|
15
|
+
require_relative 'kdeploy/dsl/initializer'
|
|
16
|
+
require_relative 'kdeploy/template/template'
|
|
17
17
|
require_relative 'kdeploy/post_install'
|
|
18
|
-
require_relative 'kdeploy/cli'
|
|
18
|
+
require_relative 'kdeploy/cli/cli'
|
|
19
19
|
|
|
20
20
|
# Kdeploy - A lightweight agentless deployment automation tool
|
|
21
21
|
module Kdeploy
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kdeploy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kk
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-04-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bcrypt_pbkdf
|
|
@@ -167,24 +167,23 @@ files:
|
|
|
167
167
|
- ext/mkrf_conf.rb
|
|
168
168
|
- lib/kdeploy.rb
|
|
169
169
|
- lib/kdeploy/banner.rb
|
|
170
|
-
- lib/kdeploy/cli.rb
|
|
171
|
-
- lib/kdeploy/
|
|
170
|
+
- lib/kdeploy/cli/cli.rb
|
|
171
|
+
- lib/kdeploy/cli/help_formatter.rb
|
|
172
172
|
- lib/kdeploy/completions/kdeploy.bash
|
|
173
173
|
- lib/kdeploy/completions/kdeploy.zsh
|
|
174
|
-
- lib/kdeploy/configuration.rb
|
|
175
|
-
- lib/kdeploy/dsl.rb
|
|
174
|
+
- lib/kdeploy/config/configuration.rb
|
|
175
|
+
- lib/kdeploy/dsl/dsl.rb
|
|
176
|
+
- lib/kdeploy/dsl/initializer.rb
|
|
176
177
|
- lib/kdeploy/errors.rb
|
|
177
|
-
- lib/kdeploy/executor.rb
|
|
178
|
-
- lib/kdeploy/
|
|
179
|
-
- lib/kdeploy/
|
|
180
|
-
- lib/kdeploy/
|
|
181
|
-
- lib/kdeploy/output.rb
|
|
182
|
-
- lib/kdeploy/output_formatter.rb
|
|
178
|
+
- lib/kdeploy/executor/command_executor.rb
|
|
179
|
+
- lib/kdeploy/executor/executor.rb
|
|
180
|
+
- lib/kdeploy/executor/file_filter.rb
|
|
181
|
+
- lib/kdeploy/output/output.rb
|
|
182
|
+
- lib/kdeploy/output/output_formatter.rb
|
|
183
183
|
- lib/kdeploy/post_install.rb
|
|
184
|
-
- lib/kdeploy/runner.rb
|
|
185
|
-
- lib/kdeploy/template.rb
|
|
184
|
+
- lib/kdeploy/runner/runner.rb
|
|
185
|
+
- lib/kdeploy/template/template.rb
|
|
186
186
|
- lib/kdeploy/version.rb
|
|
187
|
-
- r.md
|
|
188
187
|
homepage: https://github.com/kevin197011/kdeploy
|
|
189
188
|
licenses:
|
|
190
189
|
- MIT
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Kdeploy
|
|
4
|
-
# Executes a single command and records execution time
|
|
5
|
-
class CommandExecutor
|
|
6
|
-
def initialize(executor, output, debug: false, retries: 0, retry_delay: 1)
|
|
7
|
-
@executor = executor
|
|
8
|
-
@output = output
|
|
9
|
-
@debug = debug
|
|
10
|
-
@retries = retries.to_i
|
|
11
|
-
@retry_delay = retry_delay.to_f
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def execute_run(command, _host_name)
|
|
15
|
-
cmd = command[:command]
|
|
16
|
-
use_sudo = command[:sudo]
|
|
17
|
-
|
|
18
|
-
result, duration = measure_time do
|
|
19
|
-
with_retries { @executor.execute(cmd, use_sudo: use_sudo) }
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
{ command: cmd, output: result, duration: duration, type: :run }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def execute_upload(command, _host_name)
|
|
26
|
-
_result, duration = measure_time do
|
|
27
|
-
with_retries { @executor.upload(command[:source], command[:destination]) }
|
|
28
|
-
end
|
|
29
|
-
{
|
|
30
|
-
command: "upload: #{command[:source]} -> #{command[:destination]}",
|
|
31
|
-
duration: duration,
|
|
32
|
-
type: :upload
|
|
33
|
-
}
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def execute_upload_template(command, _host_name)
|
|
37
|
-
_result, duration = measure_time do
|
|
38
|
-
with_retries do
|
|
39
|
-
@executor.upload_template(command[:source], command[:destination], command[:variables])
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
{
|
|
43
|
-
command: "upload_template: #{command[:source]} -> #{command[:destination]}",
|
|
44
|
-
duration: duration,
|
|
45
|
-
type: :upload_template
|
|
46
|
-
}
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def execute_sync(command, _host_name)
|
|
50
|
-
source = command[:source]
|
|
51
|
-
destination = command[:destination]
|
|
52
|
-
|
|
53
|
-
result, duration = measure_time do
|
|
54
|
-
with_retries do
|
|
55
|
-
@executor.sync_directory(
|
|
56
|
-
source,
|
|
57
|
-
destination,
|
|
58
|
-
ignore: command[:ignore] || [],
|
|
59
|
-
exclude: command[:exclude] || [],
|
|
60
|
-
delete: command[:delete] || false
|
|
61
|
-
)
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
build_sync_result(source, destination, result, duration)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
private
|
|
69
|
-
|
|
70
|
-
def build_sync_result(source, destination, result, duration)
|
|
71
|
-
{
|
|
72
|
-
command: "sync: #{source} -> #{destination}",
|
|
73
|
-
duration: duration,
|
|
74
|
-
type: :sync,
|
|
75
|
-
result: result,
|
|
76
|
-
uploaded: result[:uploaded],
|
|
77
|
-
deleted: result[:deleted],
|
|
78
|
-
total: result[:total]
|
|
79
|
-
}
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def measure_time
|
|
83
|
-
start_time = Time.now
|
|
84
|
-
result = yield
|
|
85
|
-
duration = Time.now - start_time
|
|
86
|
-
[result, duration]
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def with_retries
|
|
90
|
-
attempts = 0
|
|
91
|
-
begin
|
|
92
|
-
attempts += 1
|
|
93
|
-
yield
|
|
94
|
-
rescue SSHError, SCPError, TemplateError
|
|
95
|
-
raise if attempts > (@retries + 1)
|
|
96
|
-
|
|
97
|
-
sleep(@retry_delay) if @retry_delay.positive?
|
|
98
|
-
retry
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
end
|
|
File without changes
|
|
File without changes
|