| 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 |