(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-lt)} {(1)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('This script takes one argument - the docker service to run'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[74])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 65]
        )
      ]
      spids: [-1 82]
    )
    (C {(cd)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})])
          left_token: <Left_CommandSub '$('>
          spids: [90 98]
        ) (/../..)
      }
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(arrow)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('Please make sure that the top level Arrow directory'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[124])]
            )
            (C {(echo)} {(DQ ("is named 'arrow'"))})
            (C {(exit)} {(1)})
          ]
          spids: [-1 115]
        )
      ]
      spids: [-1 139]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(parquet-cpp)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('Please clone the Parquet repo next to the Arrow repo'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[164])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 155]
        )
      ]
      spids: [-1 172]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GID)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(id)} {(-g)} {(${ VSub_Name USERNAME)})])
                left_token: <Left_CommandSub '$('>
                spids: [176 184]
              )
            }
          spids: [175]
        )
      ]
      spids: [175]
    )
    (C {(docker-compose)} {(-f)} {(arrow/dev/docker-compose.yml)} {(run)} {(-u)} 
      {(DQ (${ VSub_Name UID) (':') (${ VSub_Name GID))} {(DQ (${ VSub_Number 1))}
    )
  ]
)