summaryrefslogtreecommitdiff
path: root/tasks
diff options
context:
space:
mode:
authorNathen Harvey <nharvey@chef.io>2016-01-21 12:43:27 -0500
committerNathen Harvey <nharvey@chef.io>2016-01-21 12:43:27 -0500
commitd85f059458b9c039d01e4cc4d5072f52af97f3b2 (patch)
tree10ccf7870be734cfe13f7eda35cd81f3ddf2c0c5 /tasks
parent1e746d158f00859933bf3cd0e2bedc0768c1e727 (diff)
downloadchef-d85f059458b9c039d01e4cc4d5072f52af97f3b2.tar.gz
Add CBGB to the repository
Includes rake task to generate markdown from toml
Diffstat (limited to 'tasks')
-rw-r--r--tasks/cbgb.rb78
1 files changed, 78 insertions, 0 deletions
diff --git a/tasks/cbgb.rb b/tasks/cbgb.rb
new file mode 100644
index 0000000000..67457b6bd0
--- /dev/null
+++ b/tasks/cbgb.rb
@@ -0,0 +1,78 @@
+#
+# Author:: Thom May (tmay@chef.io)
+# Author:: Nathen Harvey (nharvey@chef.io)
+# Copyright:: Copyright (c) 2015-2016, Chef Software, Inc
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require 'rake'
+require 'tomlrb'
+
+CBGB_SOURCE = File.join(File.dirname(__FILE__), "..", "CBGB.toml")
+CBGB_TARGET = File.join(File.dirname(__FILE__), "..", "CBGB.md")
+
+task :default => :generate
+
+namespace :cbgb do
+ desc "Generate MarkDown version of CBGB file"
+ task :generate do
+ cbgb = Tomlrb.load_file CBGB_SOURCE
+ out = "<!-- This is a generated file. Please do not edit directly -->\n"
+ out << "<!-- Modify CBGB.toml file and run `rake cbgb:generate` to regenerate -->\n\n"
+ out << "# " + cbgb["Preamble"]["title"] + "\n\n"
+ out << cbgb["Preamble"]["text"] + "\n"
+ out << "# Board of Governers\n\n"
+ out << "## " + cbgb["Org"]["Lead"]["title"] + "\n\n"
+ out << person(cbgb["people"], cbgb["Org"]["Lead"]["person"]) + "\n\n"
+ out << "### " + cbgb["Org"]["Contributors"]["title"] + "\n\n"
+ out << cbgb(cbgb["people"], cbgb["Org"]["Contributors"]["governers"]) + "\n\n"
+ out << "### " + cbgb["Org"]["Corporate-Contributors"]["title"] + "\n\n"
+ out << cbgb(cbgb["corporations"], cbgb["Org"]["Corporate-Contributors"]["governers"]) + "\n\n"
+ out << "### " + cbgb["Org"]["Lieutenants"]["title"] + "\n\n"
+ out << cbgb(cbgb["people"], cbgb["Org"]["Lieutenants"]["governers"]) + "\n\n"
+ File.open(CBGB_TARGET, "w") { |fn|
+ fn.write out
+ }
+ end
+end
+
+def components(list, cmp)
+ out = ""
+ cmp.each do |k,v|
+ out << "\n#### #{v['title'].gsub('#','\\#')}\n"
+ out << cbgb(list, v['cbgb'])
+ end
+ out
+end
+
+def cbgb(list, people)
+ o = ""
+ people.each do |p|
+ o << person(list, p) + "\n"
+ end
+ o
+end
+
+def person(list, person)
+ if list[person].has_key?("GitHub")
+ out = "* [#{list[person]["Name"]}](https://github.com/#{list[person]["GitHub"]})"
+ else
+ out = "* #{list[person]["Name"]}"
+ end
+ if list[person].has_key?("Person")
+ out << " - #{list[person]["Person"]}"
+ end
+ out
+end