diff --git a/lib/jekyll/commands/help.rb b/lib/jekyll/commands/help.rb new file mode 100644 index 00000000..421d87e5 --- /dev/null +++ b/lib/jekyll/commands/help.rb @@ -0,0 +1,33 @@ +module Jekyll + module Commands + class Help < Command + class << self + + def init_with_program(prog) + prog.command(:help) do |c| + c.syntax 'help [subcommand]' + c.description 'Show the help message, optionally for a given subcommand.' + + c.action do |args, _| + cmd = (args.first || "").to_sym + if args.empty? + puts prog + elsif prog.has_command? cmd + puts prog.commands[cmd] + else + invalid_command(prog, cmd) + abort + end + end + end + end + + def invalid_command(prog, cmd) + Jekyll.logger.error "Error:", "Hmm... we don't know what the '#{cmd}' command is." + Jekyll.logger.info "Valid commands:", prog.commands.keys.join(", ") + end + + end + end + end +end