(command.CommandList
  children: [
    (command.ShFunction
      name_tok: <k_help2man>
      name: k_help2man
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'KOALEPHANT_TOOL_VERSION='> (DQ <2.0.0>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'KOALEPHANT_TOOL_DESCRIPTION='> 
                  (DQ <'Create a manpage from the help/version output of a executable/script'>)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'KOALEPHANT_TOOL_OPTIONS='> 
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <cat>
                          more_env: []
                          words: [{<cat>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_DLessDash '<<-'>
                              loc: (redir_loc.Fd fd:0)
                              arg: 
                                (redir_param.HereDoc
                                  here_begin: {<EOT>}
                                  here_end_tok: <Id.Undefined_Tok ''>
                                  stdin_parts: [
                                    <'Options:\n'>
                                    <'\n'>
                                    <' -h, --help                    show this help\n'>
                                    <
' -H, --help-command command    set the help argument/option to use\n'
                                    >
                                    <
' -n, --name name               set the name to use for the tool\n'
                                    >
                                    <
' -N, --alt-name name           set an alternate name for the tool\n'
                                    >
                                    <
' -o, --output file             set the filename to output to (defaults to stdout)\n'
                                    >
                                    <' -s, --section section         set the manpage section\n'>
                                    <
' -S, --source source           set the program source (i.e. a company/organisation or project/package name)\n'
                                    >
                                    <' -v, --version                 show the version\n'>
                                    <
' -V, --version-command command set the version argument/option to use\n'
                                    >
                                    <'\n'>
                                  ]
                                )
                            )
                          ]
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'KOALEPHANT_TOOL_ARGUMENTS='> (DQ <executable>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <.>
              more_env: []
              words: [{<.>} {<'./base.lib.sh'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <.>
              more_env: []
              words: [{<.>} {<'./string.lib.sh'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <.>
              more_env: []
              words: [{<.>} {<'./bool.lib.sh'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <.>
              more_env: []
              words: [{<.>} {<'./fs.lib.sh'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'helpCommand='> (DQ <--help>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'description='> (DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'section='> (DQ <1>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'source='> (DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'versionCommand='> (DQ <--version>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'output='> <'/dev/stdout'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'changeDir='> <false>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'alternativeName='> (DQ )}]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Pound '#')}
                            {<-gt>}
                            {<0>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-h>
                          pattern: (pat.Words words:[{<-h>} {<--help>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <k_usage>
                              more_env: []
                              words: [{<k_usage>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-c>
                          pattern: (pat.Words words:[{<-c>} {<--cd>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'changeDir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'changeDir='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'changeDir='>
                                      name: changeDir
                                    )
                                  op: assign_op.Equal
                                  rhs: {<true>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-H>
                          pattern: (pat.Words words:[{<-H>} {<--help-command>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'helpCommand='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'helpCommand='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'helpCommand='>
                                      name: helpCommand
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <k_option_requires_arg>
                                              more_env: []
                                              words: [
                                                {<k_option_requires_arg>}
                                                {(DQ ($ Id.VSub_At '@'))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>} {<2>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-d>
                          pattern: (pat.Words words:[{<-d>} {<--description>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'description='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'description='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'description='>
                                      name: description
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <k_option_requires_arg>
                                              more_env: []
                                              words: [
                                                {<k_option_requires_arg>}
                                                {(DQ ($ Id.VSub_At '@'))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>} {<2>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-N>
                          pattern: (pat.Words words:[{<-N>} {<--alt-name>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'alternativeName='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'alternativeName='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'alternativeName='>
                                      name: alternativeName
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <k_option_requires_arg>
                                              more_env: []
                                              words: [
                                                {<k_option_requires_arg>}
                                                {(DQ ($ Id.VSub_At '@'))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>} {<2>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-o>
                          pattern: (pat.Words words:[{<-o>} {<--output>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'output='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'output='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_Number 2))}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>} {<2>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-s>
                          pattern: (pat.Words words:[{<-s>} {<--section>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'section='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'section='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'section='>
                                      name: section
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <k_option_requires_arg>
                                              more_env: []
                                              words: [
                                                {<k_option_requires_arg>}
                                                {(DQ ($ Id.VSub_At '@'))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>} {<2>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-S>
                          pattern: (pat.Words words:[{<-S>} {<--source>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'source='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'source='> name:source)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <k_option_requires_arg>
                                              more_env: []
                                              words: [
                                                {<k_option_requires_arg>}
                                                {(DQ ($ Id.VSub_At '@'))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>} {<2>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-v>
                          pattern: (pat.Words words:[{<-v>} {<--version>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <k_version>
                              more_env: []
                              words: [{<k_version>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-V>
                          pattern: (pat.Words words:[{<-V>} {<--version-command>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'versionCommand='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'versionCommand='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'versionCommand='>
                                      name: versionCommand
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <k_option_requires_arg>
                                              more_env: []
                                              words: [
                                                {<k_option_requires_arg>}
                                                {(DQ ($ Id.VSub_At '@'))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>} {<2>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'Unknown option: '> (${ Id.VSub_Number 1))}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <k_usage>
                              more_env: []
                              words: [{<k_usage>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-->
                          pattern: (pat.Words words:[{<-->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'executable='> 
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <k_fs_resolve>
                          more_env: []
                          words: [{<k_fs_resolve>} {(DQ (${ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'executableName='> 
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <k_fs_basename>
                          more_env: []
                          words: [{<k_fs_basename>} {(DQ (${ Id.VSub_Name executable))} {<.sh>}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'dir='> 
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <k_fs_dirname>
                          more_env: []
                          words: [{<k_fs_dirname>} {(DQ (${ Id.VSub_Name executable))}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'includeFile='> 
                  (DQ (${ Id.VSub_Name dir) <'/'> (${ Id.VSub_Name executableName) <.> 
                    (${ Id.VSub_Name section) <.man>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'tmpIncludeFile='> 
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <k_fs_temp_file>
                          more_env: []
                          words: [{<k_fs_temp_file>}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-z>}
                                {(DQ (${ Id.VSub_Name executable))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ <'Executable ('> (${ Id.VSub_Name executable) <') not provided'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <k_usage>
                          more_env: []
                          words: [{<k_usage>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [577 592]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {<Id.KW_Bang '!'>}
                                    {<-f>}
                                    {(DQ (${ Id.VSub_Name executable))}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {<Id.KW_Bang '!'>}
                                    {<-x>}
                                    {(DQ (${ Id.VSub_Name executable))}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ <'Executable ('> (${ Id.VSub_Name executable) 
                                <') not an executable file'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <k_usage>
                          more_env: []
                          words: [{<k_usage>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [616 649]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(${ Id.VSub_Name changeDir)}
                                {<Id.Lit_Equals '='>}
                                {<true>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {(DQ (${ Id.VSub_Name dir))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'executable='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'executable='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'executable='> name:executable)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'./'> 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <k_fs_basename>
                                      more_env: []
                                      words: [{<k_fs_basename>} {(DQ (${ Id.VSub_Name executable))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [677 692]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-z>}
                                {(DQ (${ Id.VSub_Name description))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'description='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'description='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'description='>
                              name: description
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.Left_DollarBrace '${'>
                                          more_env: []
                                          words: [
                                            {(${ Id.VSub_Name executable)}
                                            {(${ Id.VSub_Name helpCommand)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sed>
                                          more_env: []
                                          words: [
                                            {<sed>}
                                            {<-E>}
                                            {<-n>}
                                            {<-e>}
                                            {(SQ <'/^\\s*(Usage|\\s*or):/!p'>)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <head>
                                          more_env: []
                                          words: [{<head>} {<-n>} {<1>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [727 742]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <printf>
              more_env: []
              words: [
                {<printf>}
                {
                  (DQ <'[NAME]'> <Id.Lit_BadBackslash '\\'> <'n%s - %s'> <Id.Lit_BadBackslash '\\'> <n> 
                    <Id.Lit_BadBackslash '\\'> <n>
                  )
                }
                {
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <k_string_join>
                          more_env: []
                          words: [
                            {<k_string_join>}
                            {(DQ <', '>)}
                            {(${ Id.VSub_Name executableName)}
                            {(${ Id.VSub_Name alternativeName)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
                {(DQ (${ Id.VSub_Name description))}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ (${ Id.VSub_Name tmpIncludeFile))}
                )
              ]
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<-f>}
                                {(DQ (${ Id.VSub_Name includeFile))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>} {(DQ (${ Id.VSub_Name includeFile))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ (${ Id.VSub_Name tmpIncludeFile))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [830 845]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <help2man>
              more_env: []
              words: [
                {<help2man>}
                {<--section>}
                {(DQ (${ Id.VSub_Name section))}
                {<--no-info>}
                {<--include>}
                {(DQ (${ Id.VSub_Name tmpIncludeFile))}
                {<--help-option>}
                {(DQ (${ Id.VSub_Name helpCommand))}
                {<--version-option>}
                {(DQ (${ Id.VSub_Name versionCommand))}
                {<--source>}
                {(DQ (${ Id.VSub_Name source))}
                {(DQ (${ Id.VSub_Name executable))}
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(${ Id.VSub_Name output)}
                )
              ]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <k_help2man>
      more_env: []
      words: [{<k_help2man>} {(DQ ($ Id.VSub_At '@'))}]
      redirects: []
      do_fork: T
    )
  ]
)