(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:OSH)
          op: Equal
          rhs: {(TildeSubPart prefix:'') (/git/oil/bin/osh)}
          spids: [52]
        )
      ]
      spids: [50]
    )
    (FuncDef
      name: replace-shebang
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dir)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [66]
                )
              ]
              spids: [64]
            )
            (Pipeline
              children: [
                (C {(find)} {($ VSub_Name '$dir')} {(-name)} {(SQ <'*.sh'>)})
                (C {(xargs)} {(--)} {(sed)} {(-i)} {(SQ <'s|^#!/bin/bash|#!/home/andy/git/oil/bin/osh|'>)})
              ]
              negated: False
            )
          ]
          spids: [61]
        )
      spids: [57 60]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:TOYBOX_DIR)
          op: Equal
          rhs: {(TildeSubPart prefix:'') (/git/other/toybox)}
          spids: [101]
        )
      ]
      spids: [99]
    )
    (FuncDef
      name: replace-toybox
      body: (BraceGroup children:[(C {(replace-shebang)} {($ VSub_Name '$TOYBOX_DIR')})] spids:[110])
      spids: [106 109]
    )
    (FuncDef
      name: build-toybox
      body: 
        (BraceGroup
          children: [(C {(cd)} {($ VSub_Name '$TOYBOX_DIR')}) (C {(make)} {(clean)}) (C {(make)})]
          spids: [124]
        )
      spids: [120 123]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:DE_DIR)
          op: Equal
          rhs: {(TildeSubPart prefix:'') (/git/basis-build/_tmp/debootstrap)}
          spids: [144]
        )
      ]
      spids: [142]
    )
    (FuncDef
      name: sh-debootstrap
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sh)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [158]
                )
              ]
              spids: [156]
            )
            (C {(shift)})
            (SimpleCommand
              words: [
                {($ VSub_Name '$sh')}
                {($ VSub_Name '$DE_DIR') (/debootstrap)}
                {(DQ ($ VSub_At '$@'))}
              ]
              more_env: [(env_pair name:DEBOOTSTRAP_DIR val:{($ VSub_Name '$DE_DIR')} spids:[165])]
            )
          ]
          spids: [153]
        )
      spids: [149 152]
    )
    (FuncDef
      name: osh-de-help
      body: 
        (BraceGroup
          children: [(C {(sh-debootstrap)} {($ VSub_Name '$OSH')} {(--help)})]
          spids: [184]
        )
      spids: [180 183]
    )
    (FuncDef
      name: sh-de-xenial
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sh)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [208]
                )
              ]
              spids: [206]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:target_dir)
                  op: Equal
                  rhs: {(_tmp/debootstrap/) ($ VSub_Name '$sh') (-xenial)}
                  spids: [214]
                )
              ]
              spids: [212]
            )
            (C {(mkdir)} {(-p)} {($ VSub_Name '$target_dir')})
            (AndOr
              children: [
                (TimeBlock
                  pipeline: 
                    (C {(sudo)} {($ VSub_Number '$0')} {(debootstrap)} {($ VSub_Name '$sh')} {(xenial)} 
                      {($ VSub_Name '$target_dir')}
                    )
                )
                (C {(true)})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [203]
        )
      spids: [199 202]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PYTHON_DIR)
          op: Equal
          rhs: {($ VSub_Name '$PWD') (/Python-2.7.13)}
          spids: [250]
        )
      ]
      spids: [248]
    )
    (FuncDef
      name: sh-py-configure
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sh)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(bash)})
                        spids: [265 269]
                      )
                    }
                  spids: [264]
                )
              ]
              spids: [262]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: 
                    {(_tmp/wild2/) 
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(basename)} {($ VSub_Name '$sh')})])
                        left_token: <Left_CommandSub '$('>
                        spids: [276 280]
                      ) (-py-configure)
                    }
                  spids: [274]
                )
              ]
              spids: [272]
            )
            (C {(mkdir)} {(-p)} {($ VSub_Name '$out')})
            (C {(pushd)} {($ VSub_Name '$out')})
            (AndOr
              children: [
                (TimeBlock
                  pipeline: (C {($ VSub_Name '$sh')} {($ VSub_Name '$PYTHON_DIR') (/configure)})
                )
                (C {(true)})
              ]
              op_id: Op_DPipe
            )
            (C {(popd)})
            (C {(tree)} {($ VSub_Name '$out')})
          ]
          spids: [259]
        )
      spids: [255 258]
    )
    (FuncDef
      name: osh-py-configure
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(sh-py-configure)} {($ VSub_Name '$OSH')}]
              more_env: [(env_pair name:OIL_TIMING val:{(1)} spids:[336])]
            )
          ]
          spids: [333]
        )
      spids: [329 332]
    )
    (FuncDef
      name: compare-pyconfig
      body: 
        (BraceGroup
          children: [
            (C {(diff)} {(-u)} {(-r)} 
              (BracedWordTree
                parts: [
                  (_tmp/wild2/)
                  (BracedAltPart words:[{(bash)}{(osh)}])
                  (-py-configure/config.status)
                ]
              )
            )
          ]
          spids: [350]
        )
      spids: [346 349]
    )
    (FuncDef
      name: sh-config-status
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sh)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(bash)})
                        spids: [403 407]
                      )
                    }
                  spids: [402]
                )
              ]
              spids: [400]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: 
                    {(_tmp/wild2/) 
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(basename)} {($ VSub_Name '$sh')})])
                        left_token: <Left_CommandSub '$('>
                        spids: [414 418]
                      ) (-py-configure)
                    }
                  spids: [412]
                )
              ]
              spids: [410]
            )
            (C {(pushd)} {($ VSub_Name '$out')})
            (C {($ VSub_Name '$sh')} {(./config.status)})
            (C {(popd)})
            (C {(echo)} {(Lit_VarLike 'status=') ($ VSub_QMark '$?')})
            (C {(tree)} {($ VSub_Name '$out')})
          ]
          spids: [397]
        )
      spids: [393 396]
    )
    (FuncDef
      name: osh-config-status
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(sh-config-status)} {($ VSub_Name '$OSH')}]
              more_env: [(env_pair name:OIL_TIMING val:{(1)} spids:[465])]
            )
          ]
          spids: [462]
        )
      spids: [458 461]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)