(CommandList
  children: [
    (C {(set)} {(-e)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_EqualTilde
                          left: {(DQ ($ VSub_Number '$0'))}
                          right: {(DQ (scripts/genproto.sh))}
                        )
                    )
                  ]
                  negated: True
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(echo)} {(DQ ('must be run from repository root'))}) (C {(exit)} {(255)})]
          spids: [16777215 39]
        )
      ]
      spids: [16777215 53]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_EqualTilde
                          left: 
                            {
                              (CommandSubPart
                                command_list: (CommandList children:[(C {(protoc)} {(--version)})])
                                left_token: <Left_CommandSub '$('>
                                spids: [62 66]
                              )
                            }
                          right: {(DQ (3.1.0))}
                        )
                    )
                  ]
                  negated: True
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('could not find protoc 3.1.0, is it installed + in PATH?'))})
            (C {(exit)} {(255)})
          ]
          spids: [16777215 77]
        )
      ]
      spids: [16777215 91]
    )
    (C {(export)} {(Lit_VarLike 'PATH=') (.) (Lit_Other ':') (${ VSub_Name PATH)})
    (C {(cd)} {($ VSub_Name '$GOPATH') (/src/github.com/rkt/rkt)})
    (C {(echo)} {(DQ ('building protoc-gen-go'))})
    (C {(pushd)} {(vendor/github.com/golang/protobuf/protoc-gen-go)})
    (C {(go)} {(build)})
    (C {(mv)} {(protoc-gen-go)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(dirs)} {(-l)} {(Lit_Other '+') (1)})])
          left_token: <Left_CommandSub '$('>
          spids: [127 134]
        )
      }
    )
    (C {(popd)})
    (C {(trap)} {(SQ <'rm -f "protoc-gen-go"'>)} {(EXIT)})
    (C {(echo)} {(DQ ('generating code'))})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:API_DIR) op:Equal rhs:{(DQ (api/v1alpha))} spids:[154])]
      spids: [154]
    )
    (C {(protoc)} {(-I)} {(DQ (${ VSub_Name API_DIR))} 
      {(DQ (${ VSub_Name API_DIR)) (/) (Lit_Other '*') (.proto)} 
      {(--go_out) (Lit_Other '=') (Lit_VarLike 'plugins=') (grpc) (Lit_Other ':') 
        (DQ (${ VSub_Name API_DIR))
      }
    )
  ]
)