(command.CommandList
  children: [
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<nounset>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<pipefail>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<errexit>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [
        {<readonly>}
        {<Id.Lit_VarLike 'OIL_VERSION='> 
          (CommandSub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.Simple
                blame_tok: <head>
                more_env: []
                words: [{<head>} {<-n>} {<1>} {<oil-version.txt>}]
                redirects: []
                do_fork: T
              )
            right: <Id.Eof_RParen _>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<OIL_VERSION>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <log>
      name: log
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <_build-timestamp>
      name: _build-timestamp
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ <'<hr/>'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'<i>Generated on '> 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <date>
                          more_env: []
                          words: [{<date>}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    ) <'</i>'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <_quick-ref>
      name: _quick-ref
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <'build/quick_ref.py'>
              more_env: []
              words: [{<'build/quick_ref.py'>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <x-quick-ref>
      name: x-quick-ref
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'prog='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'out_dir='> ($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'html_out='> ($ Id.VSub_DollarName out_dir) <'/doc/'> 
                  ($ Id.VSub_DollarName prog) <-quick-ref.html>
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'text_out_dir='> <'_devbuild/'> ($ Id.VSub_DollarName prog) 
                  <-quick-ref>
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'py_out='> <'_devbuild/gen/'> (${ Id.VSub_Name prog) <_help.py>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {<'_build/doc'>} {($ Id.VSub_DollarName text_out_dir)}]
              redirects: []
              do_fork: T
            )
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {<EOF>}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [
                            <'<!DOCTYPE html>\n'>
                            <'<html>\n'>
                            <'  <head>\n'>
                            <'    <style>\n'>
                            <'      a:link {\n'>
                            <'        text-decoration: none;\n'>
                            <'      }\n'>
                            <'      a:hover {\n'>
                            <'        text-decoration: underline;\n'>
                            <'      }\n'>
                            <'      body {\n'>
                            <'        margin: 0 auto;\n'>
                            <'        width: 40em;\n'>
                            <'      }\n'>
                            <'      /* different color because they\'re links but not topics */\n'>
                            <'      .level1 {\n'>
                            <'        /* color: green; */\n'>
                            <'        color: black;\n'>
                            <'      }\n'>
                            <'      .level2 {\n'>
                            <'        color: #555;\n'>
                            <'      }\n'>
                            <'      h1,h2,h3,h4 {\n'>
                            <'      /* color: darkcyan; */\n'>
                            <'      }\n'>
                            <'      #home-link {\n'>
                            <'        text-align: right;\n'>
                            <'      }\n'>
                            <'    </style>\n'>
                            <'  </head>\n'>
                            <'  <body>\n'>
                            <'    <p id='>
                            <Id.Right_DoubleQuote '"'>
                            <home-link>
                            <Id.Right_DoubleQuote '"'>
                            <'>\n'>
                            <'      <a href='>
                            <Id.Right_DoubleQuote '"'>
                            <'/'>
                            <Id.Right_DoubleQuote '"'>
                            <'>oilshell.org</a>\n'>
                            <'    </p>\n'>
                            <'    <p style='>
                            <Id.Right_DoubleQuote '"'>
                            <'color: darkred; font-size: x-large;'>
                            <Id.Right_DoubleQuote '"'>
                            <'>\n'>
                            <'      NOTE: This document is a work in progress!\n'>
                            <'    </p>\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <_quick-ref>
                  more_env: []
                  words: [{<_quick-ref>} {<toc>} {<'doc/'> (${ Id.VSub_Name prog) <-quick-ref-toc.txt>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <_quick-ref>
                  more_env: []
                  words: [
                    {<_quick-ref>}
                    {<pages>}
                    {<'doc/'> (${ Id.VSub_Name prog) <-quick-ref-pages.txt>}
                    {($ Id.VSub_DollarName text_out_dir)}
                    {($ Id.VSub_DollarName py_out)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <_build-timestamp>
                  more_env: []
                  words: [{<_build-timestamp>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {<EOF>}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [<'  </body>\n'> <'</html>\n'>]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName html_out)}
                )
              ]
              right: <Id.Lit_RBrace '}'>
            )
            (command.Simple
              blame_tok: <log>
              more_env: []
              words: [{<log>} {(DQ <'Wrote '> ($ Id.VSub_DollarName html_out))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <osh-quick-ref>
      name: osh-quick-ref
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'out_dir='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<_build>})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <x-quick-ref>
              more_env: []
              words: [{<x-quick-ref>} {<osh>} {($ Id.VSub_DollarName out_dir)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <markdown2html>
      name: markdown2html
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'src='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'out='> ($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'monospace='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 3>
                    var_name: 3
                    suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {<'_build/doc'>}]
              redirects: []
              do_fork: T
            )
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {<EOF>}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [
                            <'<!DOCTYPE html>\n'>
                            <'<html>\n'>
                            <'  <head>\n'>
                            <'    <style>\n'>
                            <'      body {\n'>
                            <'        margin: 0 auto;\n'>
                            <'        width: 40em;\n'>
                            <'        '>
                            ($ Id.VSub_DollarName monospace)
                            <'\n'>
                            <'      }\n'>
                            <'      pre {\n'>
                            <'        color: green;\n'>
                            <'        margin-left: 4em;\n'>
                            <'      }\n'>
                            <'      #home-link {\n'>
                            <'        text-align: right;\n'>
                            <'      }\n'>
                            <'    </style>\n'>
                            <'  </head>\n'>
                            <'  <body>\n'>
                            <'    <p id='>
                            <Id.Right_DoubleQuote '"'>
                            <home-link>
                            <Id.Right_DoubleQuote '"'>
                            <'>\n'>
                            <'      <a href='>
                            <Id.Right_DoubleQuote '"'>
                            <'/'>
                            <Id.Right_DoubleQuote '"'>
                            <'>oilshell.org</a>\n'>
                            <'    </p>\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <markdown>
                  more_env: []
                  words: [{<markdown>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {($ Id.VSub_DollarName src)}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <_build-timestamp>
                  more_env: []
                  words: [{<_build-timestamp>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {<EOF>}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [<'  </body>\n'> <'</html>\n'>]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName out)}
                )
              ]
              right: <Id.Lit_RBrace '}'>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [{<readonly>} {<Id.Lit_VarLike 'MONOSPACE='> (SQ <'font-family: monospace;'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <install>
      name: install
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <markdown2html>
              more_env: []
              words: [
                {<markdown2html>}
                {<INSTALL.txt>}
                {<'_release/VERSION/doc/INSTALL.html'>}
                {(DQ ($ Id.VSub_DollarName MONOSPACE))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <release-index>
      name: release-index
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'out='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VTest_ColonHyphen _>
                        arg_word: 
                          {<_build> <Id.Lit_Slash '/'> <doc> <Id.Lit_Slash '/'> <release-index.html>}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <markdown2html>
              more_env: []
              words: [{<markdown2html>} {<'doc/release-index.md'>} {($ Id.VSub_DollarName out)} {(SQ )}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <_sed-ext>
      name: _sed-ext
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <sed>
              more_env: []
              words: [{<sed>} {<--regexp-extended>} {<-i>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <update-src-versions>
      name: update-src-versions
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <_sed-ext>
              more_env: []
              words: [
                {<_sed-ext>}
                {
                  (DQ <'s/Version [0-9]+.[0-9]+.[a-z0-9]+/Version '> 
                    ($ Id.VSub_DollarName OIL_VERSION) <'/g'>
                  )
                }
                {<'doc/release-index.md'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <_sed-ext>
              more_env: []
              words: [
                {<_sed-ext>}
                {
                  (DQ <'s/oil-[0-9]+.[0-9]+.[a-z0-9]+/oil-'> ($ Id.VSub_DollarName OIL_VERSION) <'/g'>)
                }
                {<INSTALL.txt>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <_sed-ext>
              more_env: []
              words: [
                {<_sed-ext>}
                {
                  (DQ <'s;/release/[0-9]+.[0-9]+.[a-z0-9]+/;/release/'> 
                    ($ Id.VSub_DollarName OIL_VERSION) <'/;g'>
                  )
                }
                {<'doc/osh-quick-ref-toc.txt'>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <Id.Left_DoubleQuote '"'>
      more_env: []
      words: [{(DQ ($ Id.VSub_At '@'))}]
      redirects: []
      do_fork: T
    )
  ]
)