<%= program :name %> <%= program :description %> <%= "Commands:#{@default_command ? ' (* default)' : '' }" %> <% for name, command in @commands.sort -%> <% unless alias? name -%> <%= "%-#{max_command_length}s #{@default_command.nil? ? '' : (command.name == @default_command.to_s ? '* ' : ' ') }%s" % [command.name, command.summary || command.description] %> <% end -%> <% end -%> <% unless @aliases.empty? %> Aliases: <% for alias_name, args in @aliases.sort -%> <%= "%-#{max_aliases_length}s %s %s" % [alias_name, command(alias_name).name, args.join(' ')] %> <% end -%> <% end %> <% unless @options.empty? -%> Global Options: <% for option in @options -%> <%= "%-20s %s" % [option[:switches].join(', '), option[:description]] %> <% end -%> <% end -%> <% default_command_options = @commands.values.find {|c| c.name == @default_command.to_s }&.options || [] %> <% unless default_command_options.empty? %> <%= "Options for #{@default_command}:" %> <% for option in default_command_options -%> <%= "%-20s %s" % [option[:switches].join(', '), option[:description]] %> <% end -%> <% end -%> <% if program :help -%> <% for title, body in program(:help) %> <%= title %>: <%= body %> <% end %> <% end -%>