(CommandList
  children: [
    (C {(set)} {(-euo)} {(pipefail)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:THIS_DIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(dirname)} 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(readlink)} {(-f)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name BASH_SOURCE>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [70 75]
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [64 77]
                            )
                          )
                        }
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [60 79]
              )
            }
          spids: [59]
        )
      ]
      spids: [59]
    )
    (C {(cd)} {(DQ ($ VSub_Name '$THIS_DIR'))})
    (C {(../shell/test-packages.sh)} {(-f)})
    (C {(export)} 
      {(Lit_VarLike 'SANDSTORM_DIR=') 
        (DQ 
          (BracedVarSub
            token: <VSub_Name SANDSTORM_DIR>
            suffix_op: 
              (StringUnary
                op_id: VTest_ColonHyphen
                arg_word: {(Lit_Slash /) (opt) (Lit_Slash /) (sandstorm)}
              )
            spids: [97 104]
          )
        )
      }
    )
    (AndOr
      children: [
        (C {(test)} {(-e)} {(assets/ssjekyll5.spk)})
        (SimpleCommand
          words: [{(curl)} {(https) (Lit_Other ':') (//sandstorm.io/apps/ssjekyll5.spk)}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(assets/ssjekyll5.spk)}
              spids: [122]
            )
          ]
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [
        (C {(test)} {(-e)} {(assets/ssjekyll6.spk)})
        (SimpleCommand
          words: [{(curl)} {(https) (Lit_Other ':') (//sandstorm.io/apps/ssjekyll6.spk)}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(assets/ssjekyll6.spk)}
              spids: [140]
            )
          ]
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [
        (C {(test)} {(-e)} {(assets/ssjekyll7.spk)})
        (SimpleCommand
          words: [{(curl)} {(https) (Lit_Other ':') (//sandstorm.io/apps/ssjekyll7.spk)}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(assets/ssjekyll7.spk)}
              spids: [158]
            )
          ]
        )
      ]
      op_id: Op_DPipe
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name TESTCASE>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                        spids: [172 175]
                      )
                    )
                  } {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(read)} {(TESTFILE)} {(TESTNAME)}]
              redirects: [
                (Redir
                  op_id: Redir_TLess
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$TESTCASE'))}
                  spids: [202]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$TESTNAME'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NIGHTWATCH_PARAMS)
                          op: Equal
                          rhs: {(ArrayLiteralPart words:[{(-t)} {($ VSub_Name '$TESTFILE')}])}
                          spids: [225]
                        )
                      ]
                      spids: [225]
                    )
                  ]
                  spids: [16777215 222]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:NIGHTWATCH_PARAMS)
                      op: Equal
                      rhs: 
                        {
                          (ArrayLiteralPart
                            words: [
                              {(-t)}
                              {($ VSub_Name '$TESTFILE')}
                              {(--testcase)}
                              {(DQ ($ VSub_Name '$TESTNAME'))}
                            ]
                          )
                        }
                      spids: [236]
                    )
                  ]
                  spids: [236]
                )
              ]
              spids: [233 250]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SKIP_UNITTESTS)
                  op: Equal
                  rhs: {(true)}
                  spids: [253]
                )
              ]
              spids: [253]
            )
          ]
          spids: [16777215 181]
        )
      ]
      spids: [16777215 256]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_z
                      child: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name LAUNCH_URL>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [266 269]
                            )
                          )
                        }
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name SKIP_UNITTESTS>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [285 288]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(nightwatch)} {(-e)} {(unittests)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name NIGHTWATCH_PARAMS>
                            bracket_op: (WholeArray op_id:Lit_At)
                            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                            spids: [304 310]
                          )
                        )
                      }
                    )
                  ]
                  spids: [16777215 294]
                )
              ]
              spids: [16777215 314]
            )
            (C {(nightwatch)} {(-e)} {(default)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name NIGHTWATCH_PARAMS>
                    bracket_op: (WholeArray op_id:Lit_At)
                    suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                    spids: [324 330]
                  )
                )
              }
            )
          ]
          spids: [16777215 275]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [
            {(sed)}
            {
              (DQ ('s|.*launch_url.*|') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (launch_url) 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' : ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$LAUNCH_URL') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (',|g')
              )
            }
            {(nightwatch.json)}
          ]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(nightwatch.tmp.json)}
              spids: [352]
            )
          ]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: 
                        (BoolUnary
                          op_id: BoolUnary_z
                          child: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name SKIP_UNITTESTS>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                  spids: [364 367]
                                )
                              )
                            }
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (C {(nightwatch)} {(-e)} {(unittests)} {(-c)} {(./nightwatch.tmp.json)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name NIGHTWATCH_PARAMS>
                        bracket_op: (WholeArray op_id:Lit_At)
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                        spids: [387 393]
                      )
                    )
                  }
                )
              ]
              spids: [16777215 373]
            )
          ]
          spids: [16777215 397]
        )
        (C {(nightwatch)} {(-e)} {(default)} {(-c)} {(./nightwatch.tmp.json)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name NIGHTWATCH_PARAMS>
                bracket_op: (WholeArray op_id:Lit_At)
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                spids: [411 417]
              )
            )
          }
        )
      ]
      spids: [333 420]
    )
  ]
)