rbcm 0.0.9 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/action/file.rb +1 -7
- data/app/action/list.rb +5 -0
- data/app/cli.rb +14 -12
- data/app/lib/params.rb +1 -1
- data/app/node/sandbox.rb +1 -11
- data/app/project/project.rb +10 -7
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba856611e3af9f4f13e7ed546987c0033ec5a4fb0155a68a9a6edbe4a4f68c60
|
4
|
+
data.tar.gz: 42545b973f0eff3689e807898579ceda9c62b3a362a9e1ad4b7e9f2a81d1e221
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edfdafa164f3c571b0262620c462837dfd3b9d9029667ff4ed4596284107a586775238d25ab92a5f0a6535d4e9007645c65cafaecccbc18578eeee43de367eae
|
7
|
+
data.tar.gz: 6e5f2a500540299697e2a8becb9630551a04587283f0a51b72fc0b169106a2c83429b409965e85038a8ffe9cd4a5cf183daa6c01d023007da5945f368d41bef0
|
data/app/action/file.rb
CHANGED
@@ -24,13 +24,7 @@ class Action::File < Action
|
|
24
24
|
@content ||= if @params[:content]
|
25
25
|
@params[:content].to_s
|
26
26
|
elsif @params[:template]
|
27
|
-
|
28
|
-
# @params[:template]
|
29
|
-
# ).render context: @params[:context]
|
30
|
-
# Node::Template.new(
|
31
|
-
# name: @params[:template]
|
32
|
-
# ).render context: @params[:context]
|
33
|
-
project_file.project.templates_.for(self).render(
|
27
|
+
project_file.project.templates.for(self).render(
|
34
28
|
context: @params[:context]
|
35
29
|
)
|
36
30
|
end
|
data/app/action/list.rb
CHANGED
@@ -25,6 +25,11 @@ class ActionList < Array
|
|
25
25
|
ActionList.new select{|action| action.path == path}
|
26
26
|
end
|
27
27
|
|
28
|
+
def node node_name
|
29
|
+
return self unless node_name
|
30
|
+
ActionList.new select{|action| action.job.node.name == node_name}
|
31
|
+
end
|
32
|
+
|
28
33
|
def checkable
|
29
34
|
ActionList.new select.checkable?
|
30
35
|
end
|
data/app/cli.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
class CLI
|
2
|
-
def initialize
|
3
|
-
|
2
|
+
def initialize argv
|
3
|
+
args = Hash[ argv.join(' ').scan(/--?([^=\s]+)(?:[=\s](\S+))?/) ]
|
4
|
+
puts "ARGS #{args}"
|
4
5
|
render section: "RBCM starting", first: true
|
5
6
|
# bootstrap
|
6
|
-
@rbcm = rbcm = RBCM.new
|
7
|
+
@rbcm = rbcm = RBCM.new argv[0] || `pwd`.chomp
|
7
8
|
render :project
|
8
9
|
render :capabilities
|
9
10
|
# parse
|
@@ -11,13 +12,13 @@ class CLI
|
|
11
12
|
render :nodes
|
12
13
|
# check
|
13
14
|
render section: "CHECKING #{rbcm.actions.checkable.count} actions on #{rbcm.nodes.count} nodes"
|
14
|
-
rbcm.actions.each do |action|
|
15
|
+
rbcm.actions.node(args["node"]).each do |action|
|
15
16
|
check action
|
16
17
|
end
|
17
18
|
# approve
|
18
19
|
render section: "APPROVING #{rbcm.actions.approvable.count}/#{rbcm.actions.unneccessary.count} actions"
|
19
20
|
approve rbcm.actions.unneccessary.resolve_triggers
|
20
|
-
while action = rbcm.actions.approvable.resolve_triggers.first
|
21
|
+
while action = rbcm.actions.node(args["node"]).approvable.resolve_triggers.first
|
21
22
|
approve action
|
22
23
|
if action.approved?
|
23
24
|
approve action.siblings
|
@@ -31,7 +32,6 @@ class CLI
|
|
31
32
|
end
|
32
33
|
# finish
|
33
34
|
render :applied
|
34
|
-
puts "┗━━──"
|
35
35
|
end
|
36
36
|
|
37
37
|
private
|
@@ -46,7 +46,7 @@ class CLI
|
|
46
46
|
[actions].flatten(1).each do |action|
|
47
47
|
@action = action
|
48
48
|
render :title, color: (action.obsolete ? :green : :yellow)
|
49
|
-
render :command if action.class == Action::Command
|
49
|
+
#render :command if action.class == Action::Command
|
50
50
|
next if not action.approvable?
|
51
51
|
render :siblings if action.siblings.any?
|
52
52
|
render :source if action.source.flatten.compact.any?
|
@@ -77,9 +77,9 @@ class CLI
|
|
77
77
|
out "#{first ? nil : "┗━━──"}\n\n┏━━#{format :invert, :bold}#{" "*16}#{section}#{" "*16}#{format}━──\n┃"
|
78
78
|
elsif element == :title
|
79
79
|
triggerd_by = "#{format :trigger, :bold} #{@action.triggered_by.join(", ")} " if @action.triggered_by.any?
|
80
|
-
|
81
|
-
"#{
|
82
|
-
"
|
80
|
+
tags = "#{format :tag}#{"tags: " if @action.tags.any?}#{@action.tags.join(", ")}#{format}"
|
81
|
+
out "┣━ #{triggerd_by}#{format color, :bold} #{@action.chain.flatten.compact.join(" > ")} #{format} #{tags}" +
|
82
|
+
"\n#{prefix}#{format}#{format :params}#{@action.job.params if @action.job}#{format}"
|
83
83
|
elsif element == :capabilities
|
84
84
|
out prefix + "capabilities: #{Node::Sandbox.capabilities.join(", ")}"
|
85
85
|
elsif element == :project
|
@@ -116,7 +116,7 @@ class CLI
|
|
116
116
|
).to_s(:color).split("\n").join("\n#{prefix[0..-2]}")
|
117
117
|
elsif element == :approved
|
118
118
|
string = @action.approved? ? "#{format :green} APPROVED" : "#{format :red} DECLINED"
|
119
|
-
|
119
|
+
out "#{prefix} #{string} #{format} "
|
120
120
|
elsif element.class == String
|
121
121
|
out prefix + "#{element}"
|
122
122
|
elsif checking
|
@@ -126,7 +126,9 @@ class CLI
|
|
126
126
|
elsif element == :applied
|
127
127
|
out prefix
|
128
128
|
out "┣━\ #{format :green, :bold} #{@rbcm.actions.succeeded.count} secceeded #{format}"
|
129
|
-
out "┣━\ #{format :red, :bold} #{@rbcm.actions.failed.count} failed #{format}"
|
129
|
+
out "┣━\ #{format :red, :bold} #{@rbcm.actions.failed.count} failed #{format}" if @rbcm.actions.failed.any?
|
130
|
+
out "┗━━──"
|
131
|
+
|
130
132
|
else
|
131
133
|
end
|
132
134
|
end
|
data/app/lib/params.rb
CHANGED
@@ -20,7 +20,7 @@ class Params
|
|
20
20
|
"#{param}"
|
21
21
|
},
|
22
22
|
named.collect{ |k, v|
|
23
|
-
"\e[2m\e[1m#{k}:\e[21m\e[22m #{v[0..
|
23
|
+
"\e[2m\e[1m#{k}:\e[21m\e[22m #{v[0..60].to_s.gsub("\n"," \\ ")}#{"\e[2m\e[1m…\e[21m\e[22m" if v.length > 60}"
|
24
24
|
}
|
25
25
|
].flatten(1).join("\e[2m\e[1m, \e[21m\e[22m")
|
26
26
|
end
|
data/app/node/sandbox.rb
CHANGED
@@ -111,21 +111,11 @@ class Node::Sandbox
|
|
111
111
|
|
112
112
|
def dir path="", templates:, context: {}, tags: nil, trigger: nil, triggered_by: nil
|
113
113
|
__cache tags: tags, trigger: trigger, triggered_by: triggered_by, working_dirs: working_dir do
|
114
|
-
@node.rbcm.project.
|
115
|
-
# binding.pry
|
116
|
-
# sleep 1
|
114
|
+
@node.rbcm.project.templates.under("#{working_dir}/#{templates}").each do |template|
|
117
115
|
file template.clean_full_path.gsub(/#{working_dir}/),
|
118
116
|
template: template.clean_path,
|
119
117
|
context: context
|
120
118
|
end
|
121
|
-
|
122
|
-
# @node.rbcm.project.templates.select{ |template|
|
123
|
-
# /^#{working_dir}/.match? template
|
124
|
-
# }.each do |template|
|
125
|
-
# file path + template.gsub(/^#{working_dir}\/#{templates}/,"").gsub(".erb", "").gsub(".mustache", ""),
|
126
|
-
# template: template,
|
127
|
-
# context: context
|
128
|
-
# end
|
129
119
|
end
|
130
120
|
end
|
131
121
|
|
data/app/project/project.rb
CHANGED
@@ -2,15 +2,14 @@ class Project
|
|
2
2
|
def initialize path, template_engines: [:mustache, :erb], addon: false
|
3
3
|
@path = path
|
4
4
|
@files = []
|
5
|
-
@templates =
|
6
|
-
@templates_ = Project::TemplateList.new
|
5
|
+
@templates = Project::TemplateList.new
|
7
6
|
@other = []
|
8
7
|
@directories = []
|
9
8
|
@template_engines = template_engines
|
10
9
|
load_files path
|
11
10
|
end
|
12
11
|
|
13
|
-
attr_reader :path, :files, :templates, :other, :directories, :
|
12
|
+
attr_reader :path, :files, :templates, :other, :directories, :templates
|
14
13
|
|
15
14
|
def capabilities
|
16
15
|
files.each.capabilities.flatten.compact
|
@@ -53,8 +52,7 @@ class Project
|
|
53
52
|
path: file_path
|
54
53
|
)
|
55
54
|
elsif @template_engines.include? file_path.split(".").last.to_sym
|
56
|
-
@templates
|
57
|
-
@templates_.append Project::Template.new(
|
55
|
+
@templates.append Project::Template.new(
|
58
56
|
project: self,
|
59
57
|
path: file_path
|
60
58
|
)
|
@@ -64,9 +62,14 @@ class Project
|
|
64
62
|
@other << file_path.sub(@path, "")
|
65
63
|
end
|
66
64
|
end
|
67
|
-
log "templates: #{@templates}"
|
65
|
+
log "templates: #{@templates.each.path}"
|
68
66
|
else
|
69
|
-
@files = [
|
67
|
+
@files = [
|
68
|
+
Project::ProjectFile.new(
|
69
|
+
project: self,
|
70
|
+
path: path
|
71
|
+
)
|
72
|
+
]
|
70
73
|
end
|
71
74
|
raise "ERROR: empty project" unless @files.any?
|
72
75
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbcm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Wiegand
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 4.2.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: git
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.4.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.4.0
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: pry
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|