BryanDavis has uploaded a new change for review. https://gerrit.wikimedia.org/r/164901
Change subject: Add `vagrant role info` command ...................................................................... Add `vagrant role info` command Add a custom vagrant command that can be used to view the documentation for a role. Change-Id: Id46177034bfa7d9c927be851059f81354207dfb1 --- M lib/mediawiki-vagrant/environment.rb A lib/mediawiki-vagrant/roles/info.rb M lib/mediawiki-vagrant/roles/root.rb M puppet/modules/role/manifests/mediawiki.pp 4 files changed, 59 insertions(+), 3 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vagrant refs/changes/01/164901/1 diff --git a/lib/mediawiki-vagrant/environment.rb b/lib/mediawiki-vagrant/environment.rb index db08726..a4ac562 100644 --- a/lib/mediawiki-vagrant/environment.rb +++ b/lib/mediawiki-vagrant/environment.rb @@ -74,6 +74,20 @@ hiera_set('classes', classes) end + # Get comment header for a role + # + def role_docstring(role) + role_file = module_path("role/manifests/#{role}.pp") + return nil unless role_file.exist? + + doc_str = '' + role_file.read.each_line do |l| + break unless l =~ /^#( |$)/ + doc_str += l.gsub(/^# ?/, '') + end + doc_str + end + # If it has been a week or more since remote commits have been fetched, # run 'git fetch origin', unless the user disabled automatic fetching. # You can disable automatic fetching by creating an empty 'no-updates' diff --git a/lib/mediawiki-vagrant/roles/info.rb b/lib/mediawiki-vagrant/roles/info.rb new file mode 100644 index 0000000..efd1bf7 --- /dev/null +++ b/lib/mediawiki-vagrant/roles/info.rb @@ -0,0 +1,39 @@ +require 'mediawiki-vagrant/plugin_environment' +require 'rdoc' + +module MediaWikiVagrant + module Roles + class Info < Vagrant.plugin(2, :command) + include PluginEnvironment + + def self.synopsis + 'get information about a mediawiki-vagrant role' + end + + def execute + opts = OptionParser.new do |o| + o.banner = 'Usage: vagrant roles info <role>' + o.separator '' + o.separator ' Describe a mediawiki-vagrant role.' + o.separator '' + end + + argv = parse_options(opts) + return if !argv + raise Vagrant::Errors::CLIInvalidUsage, help: opts.help.chomp if argv.length < 1 + + role = argv[0].downcase + doc = @mwv.role_docstring(role) + if doc.nil? + @env.ui.error "'#{role}' is not a valid role." + return 1 + end + + rd = RDoc::Markup::ToAnsi.new + @env.ui.info rd.convert(doc) + + 0 + end + end + end +end diff --git a/lib/mediawiki-vagrant/roles/root.rb b/lib/mediawiki-vagrant/roles/root.rb index 47461b8..51be6d7 100644 --- a/lib/mediawiki-vagrant/roles/root.rb +++ b/lib/mediawiki-vagrant/roles/root.rb @@ -30,6 +30,10 @@ require_relative 'disable' Disable end + @subcommands.register(:info) do + require_relative 'info' + Info + end end def execute diff --git a/puppet/modules/role/manifests/mediawiki.pp b/puppet/modules/role/manifests/mediawiki.pp index f3631d3..03d5ebf 100644 --- a/puppet/modules/role/manifests/mediawiki.pp +++ b/puppet/modules/role/manifests/mediawiki.pp @@ -1,9 +1,8 @@ # == Class: role::mediawiki -# Provisions a MediaWiki instance powered by PHP, MySQL, and redis. +# Provisions a MediaWiki instance powered by HHVM, MySQL, and redis. # # === Parameters -# -# [*hostname*] +# [+hostname+] # Hostname for the main wiki. # class role::mediawiki( -- To view, visit https://gerrit.wikimedia.org/r/164901 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id46177034bfa7d9c927be851059f81354207dfb1 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/vagrant Gerrit-Branch: master Gerrit-Owner: BryanDavis <bda...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits