<%# encoding: UTF-8%>
<% if action.deprecated? -%>
  <%= "Warning: 'puppet #{action.face.name} #{action.name}' is deprecated and will be removed in a future release." %>
<% end %>
<% if action.synopsis -%>
USAGE: <%= action.synopsis %>

<% end -%>
<%= action.short_description || action.summary || face.summary || "undocumented subcommand" %>

<% if action.returns -%>
RETURNS: <%= action.returns.strip %>

<% end -%>
OPTIONS:
<%# Remove these options once we can introspect them normally. -%>
  --render-as FORMAT             - The rendering format to use.
  --verbose                      - Whether to log verbosely.
  --debug                        - Whether to log debug information.
<%  optionroom = 30
	summaryroom = 80 - 5 - optionroom

	disp_glob_opts = action.display_global_options.uniq
 	unless disp_glob_opts.empty?
		disp_glob_opts.sort.each do |name|
			option = name
			desc = Puppet.settings.setting(option).desc
			type = Puppet.settings.setting(option).default
			type ||= Puppet.settings.setting(option).type.to_s.upcase -%>
  <%= 		"--#{option} #{type}".ljust(optionroom) + ' - ' -%>
<%			if !(desc) -%>
undocumented option
<%     		elsif desc.length <= summaryroom -%>
<%= 			desc %>
<%
       		else
				words = desc.split
				wrapped = ['']
				i = 0
				words.each do |word|
					if wrapped[i].length + word.length <= summaryroom
						wrapped[i] << word + ' '
					else
						i += 1
						wrapped[i] = word + ' '
					end
				end -%>
<%= 			wrapped.shift.strip %>
<%				wrapped.each do |line| -%>
<%= 				(' ' * (optionroom + 5) ) + line.strip %>
<%				end
		 	end
	  	end
	end
	unless action.options.empty?
      action.options.sort.each do |name|
        option = action.get_option name -%>
<%= "  " + option.optparse.join(" | ")[0,(optionroom - 1)].ljust(optionroom) + ' - ' -%>
<%     if !(option.summary) -%>
undocumented option
<%     elsif option.summary.length <= summaryroom -%>
<%= option.summary %>
<%
        else
          words = option.summary.split
          wrapped = ['']
          i = 0
          words.each do |word|
            if wrapped[i].length + word.length <= summaryroom
              wrapped[i] << word + ' '
            else
              i += 1
              wrapped[i] = word + ' '
            end
          end
-%>
<%= wrapped.shift.strip %>
<%       wrapped.each do |line| -%>
<%= (' ' * (optionroom + 5) ) + line.strip %>
<%       end
        end
      end -%>
<% end -%>

<% if face.respond_to? :indirection -%>
TERMINI: <%= face.class.terminus_classes(face.indirection.name).join(", ") %>

<% end -%>
See 'puppet help <%= face.name %>' or 'man puppet-<%= face.name %>' for full help.
