Class: Nanoc2::CLI::HelpCommand

Inherits:
Cri::Command
  • Object
show all
Defined in:
lib/nanoc2/cli/commands/help.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#aliasesObject



9
10
11
# File 'lib/nanoc2/cli/commands/help.rb', line 9

def aliases
  []
end

#long_descObject



17
18
19
20
21
22
23
# File 'lib/nanoc2/cli/commands/help.rb', line 17

def long_desc
  'Show help for the given command, or show general help. When no ' +
  'command is given, a list of available commands is displayed, as ' +
  'well as a list of global commandline options. When a command is ' +
  'given, a command description as well as command-specific ' +
  'commandline options are shown.'
end

#nameObject



5
6
7
# File 'lib/nanoc2/cli/commands/help.rb', line 5

def name
  'help'
end

#run(options, arguments) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/nanoc2/cli/commands/help.rb', line 29

def run(options, arguments)
  # Check arguments
  if arguments.size > 1
    $stderr.puts "usage: #{usage}"
    exit 1
  end

  if arguments.length == 0
    # Build help text
    text = ''

    # Add title
    text << "nanoc, a static site compiler written in Ruby.\n"

    # Add available commands
    text << "\n"
    text << "Available commands:\n"
    text << "\n"
    @base.commands.sort.each do |command|
      text << sprintf("    %-20s %s\n", command.name, command.short_desc)
    end

    # Add global options
    text << "\n"
    text << "Global options:\n"
    text << "\n"
    @base.global_option_definitions.sort { |x,y| x[:long] <=> y[:long] }.each do |opt_def|
      text << sprintf("    -%1s --%-15s %s\n", opt_def[:short], opt_def[:long], opt_def[:desc])
    end

    # Display text
    puts text
  elsif arguments.length == 1
    command = @base.command_named(arguments[0])
    puts command.help
  end
end

#short_descObject



13
14
15
# File 'lib/nanoc2/cli/commands/help.rb', line 13

def short_desc
  'show help for a command'
end

#usageObject



25
26
27
# File 'lib/nanoc2/cli/commands/help.rb', line 25

def usage
  "nanoc2 help [command]"
end