(CommandList
  children: [
    (C {(set)} {(-e)})
    (C {(cd)} 
      {
        (DQ 
          (CommandSubPart
            command_list: (CommandList children:[(C {(dirname)} {(DQ ($ VSub_Number '$0'))})])
            left_token: <Left_CommandSub '$('>
            spids: [25 31]
          ) (/..)
        )
      }
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                          {(DQ (production))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(heroku)} {(run)} {(rails)} {(console)} {(--app)} {(heroku-app-name)})]
                  spids: [-1 77]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                          {(DQ (staging))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(heroku)} {(run)} {(rails)} {(console)} {(--app)} {(heroku-app-name-staging)})
                  ]
                  spids: [93 110]
                )
              ]
              else_action: [
                (C {(echo)} 
                  {
                    (DQ ("Sorry, I don't know how to connect to the '") ($ VSub_Number '$1') 
                      ("' environment.")
                    )
                  }
                )
                (C {(exit)} {(1)})
              ]
              spids: [126 143]
            )
          ]
          spids: [-1 49]
        )
      ]
      else_action: [(C {(script/update)}) (C {(bin/rails)} {(console)})]
      spids: [145 163]
    )
  ]
)