(CommandList
  children: [
    (C {(set)} {(-e)} {(-x)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:action) op:Equal rhs:{($ VSub_Number "$1")} spids:[32])]
      spids: [32]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {($ VSub_Name "$action")}
                      right: {(DQ (build))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(cd)} {(/io)})
            (ForEach
              iter_name: PYBIN
              iter_words: [{(/opt/python/) (Lit_Other "*") (/bin)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(DQ ($ VSub_Name "$PYBIN") (/pip))} {(install)} {(-r)} {(requirements/wheel.pip)})
                    (C {(DQ ($ VSub_Name "$PYBIN") (/python))} {(setup.py)} {(bdist_wheel)} {(-d)} 
                      {(TildeSubPart prefix:"") (/wheelhouse/)}
                    )
                  ]
                  spids: [74 104]
                )
              spids: [68 72]
            )
            (C {(cd)} {(TildeSubPart prefix:"")})
            (ForEach
              iter_name: whl
              iter_words: [{(wheelhouse/) (Lit_Other "*") (.whl)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(auditwheel)} {(repair)} {(DQ ($ VSub_Name "$whl"))} {(-w)} {(/io/dist/)})
                  ]
                  spids: [128 144]
                )
              spids: [122 126]
            )
          ]
          spids: [-1 51]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {($ VSub_Name "$action")}
                      right: {(DQ (test))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TOXBIN)
                  op: Equal
                  rhs: {(/opt/python/cp27-cp27m/bin)}
                  spids: [169]
                )
              ]
              spids: [169]
            )
            (C {(DQ ($ VSub_Name "$TOXBIN") (/pip))} {(install)} {(-r)} {(/io/requirements/ci.pip)})
            (ForEach
              iter_name: PYBIN
              iter_words: [{(/opt/python/) (Lit_Other "*") (/bin/)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PYNAME)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(DQ ($ VSub_Name "$PYBIN") (/python))} {(-c)} 
                                        {
                                          (DQ 
                                            (
"import sys; print('python{0[0]}.{0[1]}'.format(sys.version_info))"
                                            )
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [201 212]
                              )
                            }
                          spids: [200]
                        )
                      ]
                      spids: [200]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TOXENV)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(DQ ($ VSub_Name "$PYBIN") (/python))} {(-c)} 
                                        {
                                          (DQ 
                                            (
"import sys; print('py{0[0]}{0[1]}'.format(sys.version_info))"
                                            )
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [216 227]
                              )
                            }
                          spids: [215]
                        )
                      ]
                      spids: [215]
                    )
                    (C {(ln)} {(-s)} {(DQ ($ VSub_Name "$PYBIN") (/) ($ VSub_Name "$PYNAME"))} 
                      {(/usr/local/bin/) ($ VSub_Name "$PYNAME")}
                    )
                    (C {(DQ ($ VSub_Name "$TOXBIN") (/tox))} {(-e)} {($ VSub_Name "$TOXENV")})
                    (C {(rm)} {(-f)} {(/usr/local/bin/) ($ VSub_Name "$PYNAME")})
                  ]
                  spids: [197 270]
                )
              spids: [191 195]
            )
          ]
          spids: [147 162]
        )
      ]
      else_action: [(C {(echo)} {(DQ ("Need an action to perform!"))})]
      spids: [273 282]
    )
  ]
)