(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/oilshell/oil/bin/osh)}
          spids: [55]
        )
      ]
      spids: [53]
    )
    (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: [69]
                )
              ]
              spids: [67]
            )
            (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: [64]
        )
      spids: [60 63]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:TOYBOX_DIR)
          op: Equal
          rhs: {(TildeSubPart prefix:'') (/git/other/toybox)}
          spids: [104]
        )
      ]
      spids: [102]
    )
    (FuncDef
      name: replace-toybox
      body: (BraceGroup children:[(C {(replace-shebang)} {($ VSub_Name '$TOYBOX_DIR')})] spids:[113])
      spids: [109 112]
    )
    (FuncDef
      name: build-toybox
      body: 
        (BraceGroup
          children: [(C {(cd)} {($ VSub_Name '$TOYBOX_DIR')}) (C {(make)} {(clean)}) (C {(make)})]
          spids: [127]
        )
      spids: [123 126]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:DE_DIR)
          op: Equal
          rhs: {(TildeSubPart prefix:'') (/git/basis-build/_tmp/debootstrap)}
          spids: [157]
        )
      ]
      spids: [155]
    )
    (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: [171]
                )
              ]
              spids: [169]
            )
            (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:[178])]
            )
          ]
          spids: [166]
        )
      spids: [162 165]
    )
    (FuncDef
      name: osh-de-help
      body: 
        (BraceGroup
          children: [(TimeBlock pipeline:(C {(sh-debootstrap)} {($ VSub_Name '$OSH')} {(--help)}))]
          spids: [197]
        )
      spids: [193 196]
    )
    (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: [231]
                )
              ]
              spids: [229]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:target_dir)
                  op: Equal
                  rhs: {(_tmp/debootstrap/) ($ VSub_Name '$sh') (-xenial)}
                  spids: [237]
                )
              ]
              spids: [235]
            )
            (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: [226]
        )
      spids: [222 225]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PYTHON_DIR)
          op: Equal
          rhs: {($ VSub_Name '$PWD') (/Python-2.7.13)}
          spids: [283]
        )
      ]
      spids: [281]
    )
    (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: [298 302]
                      )
                    }
                  spids: [297]
                )
              ]
              spids: [295]
            )
            (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: [309 313]
                      ) (-py-configure)
                    }
                  spids: [307]
                )
              ]
              spids: [305]
            )
            (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: [292]
        )
      spids: [288 291]
    )
    (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:[363])]
            )
          ]
          spids: [360]
        )
      spids: [356 359]
    )
    (FuncDef
      name: compare-pyconfig
      body: 
        (BraceGroup
          children: [
            (C {(diff)} {(-u)} {(-r)} 
              (BracedWordTree
                parts: [(_tmp/wild2/) (BracedAltPart words:[{(bash)} {(osh)}]) (-py-configure)]
              )
            )
          ]
          spids: [383]
        )
      spids: [379 382]
    )
    (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: [436 440]
                      )
                    }
                  spids: [435]
                )
              ]
              spids: [433]
            )
            (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: [447 451]
                      ) (-py-configure)
                    }
                  spids: [445]
                )
              ]
              spids: [443]
            )
            (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: [430]
        )
      spids: [426 429]
    )
    (FuncDef
      name: osh-config-status
      body: (BraceGroup children:[(C {(sh-config-status)} {($ VSub_Name '$OSH')})] spids:[495])
      spids: [491 494]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)