kdeploy 1.0.9 → 1.1.0

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: '079548e82a360553e00c1aecb5967fd7d57320dbf5d89684a992885444e0e5ac'
4
- data.tar.gz: 4b639818b4116f7111fe44ef3d983abf8fdc0c24ac0ee558f35e09d9d3592722
3
+ metadata.gz: 361d3e4177d88e983400481dbfcbd8ae4c3e6e4f7964e547cdfb9fbdf333ba6c
4
+ data.tar.gz: d9c0aa6de6a5741f15cc175dffdc247903b4070fbd3ccfe66bb39bdcf8d52181
5
5
  SHA512:
6
- metadata.gz: f07494332413308f446e39e91f75f856ee1b0484c662ac299d2c2300e01b5ece8d32e072cd727371b53d0542df48a1e8678d0de5889696b09903bda6438005a5
7
- data.tar.gz: 91ecd8ede72319bf7693424fe6e2efcee9f9ddb7e82ce2db28ae52f69ed622ec57ba019c49c70d3a7aacbc5357b02d4b5c9861dc294fdd4b15e55540b324fa83
6
+ metadata.gz: b24732771d9e0cbee179aeffcc83b2c3f99a9711c4730b00b33a7a7536ac5cf362dbf8462940c91a0314c4bb7b2547880c04dd402e6b2eba36ca355aa7973657
7
+ data.tar.gz: b64dcf2f6498fd6b5f6d53c1738dbe719be7d033925e8e0b046bd5a6be5d2d93915e87ac4860079bb356d080b1e4170ec5398f10309dc0e2733c2a40147a3f46
data/lib/kdeploy/cli.rb CHANGED
@@ -229,7 +229,15 @@ module Kdeploy
229
229
  ok_str = pastel.green("ok=#{ok.to_s.ljust(3)}")
230
230
  changed_str = pastel.yellow("changed=#{changed.to_s.ljust(3)}")
231
231
  failed_str = pastel.red("failed=#{failed.to_s.ljust(3)}")
232
- puts "#{host.ljust(max_host_len)} : #{ok_str} #{changed_str} #{failed_str}"
232
+ line = "#{host.ljust(max_host_len)} : #{ok_str} #{changed_str} #{failed_str}"
233
+ case result[:status]
234
+ when :success
235
+ puts pastel.green(line)
236
+ when :changed
237
+ puts pastel.yellow(line)
238
+ else
239
+ puts pastel.red(line)
240
+ end
233
241
  end
234
242
  end
235
243
  end
@@ -21,28 +21,49 @@ module Kdeploy
21
21
  executor = Executor.new(config)
22
22
  result = { status: :success, output: [] }
23
23
 
24
- task[:block].call.each do |command|
25
- case command[:type]
26
- when :run
27
- # 美化输出
28
- pastel = Pastel.new
29
- puts pastel.bright_white("\n#{name.ljust(24)} : ")
30
- puts pastel.cyan(" [run] #{command[:command].lines.first.strip}")
31
- command[:command].lines[1..].each { |line| puts " > #{line.strip}" unless line.strip.empty? }
32
- output = executor.execute(command[:command])
33
- result[:output] << { command: command[:command], output: output }
34
- when :upload
35
- pastel = Pastel.new
36
- puts pastel.bright_white("\n#{name.ljust(24)} : ")
37
- puts pastel.green(" [upload] #{command[:source]} -> #{command[:destination]}")
38
- executor.upload(command[:source], command[:destination])
39
- result[:output] << { command: "upload: #{command[:source]} -> #{command[:destination]}" }
40
- when :upload_template
41
- pastel = Pastel.new
42
- puts pastel.bright_white("\n#{name.ljust(24)} : ")
43
- puts pastel.yellow(" [template] #{command[:source]} -> #{command[:destination]}")
44
- executor.upload_template(command[:source], command[:destination], command[:variables])
45
- result[:output] << { command: "upload_template: #{command[:source]} -> #{command[:destination]}" }
24
+ task[:block].call.group_by do |cmd|
25
+ cmd[:type].to_s + (if cmd[:type] == :upload
26
+ cmd[:source].to_s
27
+ else
28
+ cmd[:type] == :run ? cmd[:command].to_s.lines.first.strip : ''
29
+ end)
30
+ end.each_value do |commands|
31
+ # 生成 TASK 横幅
32
+ pastel = Pastel.new
33
+ first_cmd = commands.first
34
+ task_desc = case first_cmd[:type]
35
+ when :upload
36
+ "upload #{first_cmd[:source]}"
37
+ when :upload_template
38
+ "template #{first_cmd[:source]}"
39
+ when :run
40
+ first_cmd[:command].to_s.lines.first.strip
41
+ else
42
+ first_cmd[:type].to_s
43
+ end
44
+ puts pastel.cyan("\nTASK [#{task_desc}] " + ('*' * 64))
45
+ commands.each do |command|
46
+ case command[:type]
47
+ when :run
48
+ pastel = Pastel.new
49
+ puts pastel.bright_white("\n#{name.ljust(24)} : ")
50
+ puts pastel.cyan(" [run] #{command[:command].lines.first.strip}")
51
+ command[:command].lines[1..].each { |line| puts " > #{line.strip}" unless line.strip.empty? }
52
+ output = executor.execute(command[:command])
53
+ result[:output] << { command: command[:command], output: output }
54
+ when :upload
55
+ pastel = Pastel.new
56
+ puts pastel.bright_white("\n#{name.ljust(24)} : ")
57
+ puts pastel.green(" [upload] #{command[:source]} -> #{command[:destination]}")
58
+ executor.upload(command[:source], command[:destination])
59
+ result[:output] << { command: "upload: #{command[:source]} -> #{command[:destination]}" }
60
+ when :upload_template
61
+ pastel = Pastel.new
62
+ puts pastel.bright_white("\n#{name.ljust(24)} : ")
63
+ puts pastel.yellow(" [template] #{command[:source]} -> #{command[:destination]}")
64
+ executor.upload_template(command[:source], command[:destination], command[:variables])
65
+ result[:output] << { command: "upload_template: #{command[:source]} -> #{command[:destination]}" }
66
+ end
46
67
  end
47
68
  end
48
69
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kdeploy
4
- VERSION = '1.0.9'
4
+ VERSION = '1.1.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kdeploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kk