(CommandList
  children: [
    (FuncDef
      name: checkdocker
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(which)} {(docker.io)}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [28]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [32]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOCKER)
                          op: Equal
                          rhs: {(docker.io)}
                          spids: [40]
                        )
                      ]
                      spids: [40]
                    )
                  ]
                  spids: [-1 37]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(which)} {(docker)}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [50]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [54]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOCKER)
                          op: Equal
                          rhs: {(docker)}
                          spids: [62]
                        )
                      ]
                      spids: [62]
                    )
                  ]
                  spids: [44 59]
                )
              ]
              else_action: [(C {(echo)} {(DQ ('Error: docker must be installed'))}) (C {(exit)} {(1)})]
              spids: [66 81]
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (SimpleCommand
                      words: [{($ VSub_Name '$DOCKER')} {(-h)}]
                      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[89])]
                    )
                    (C {(grep)} {(-q)} {(Jansens)})
                  ]
                  negated: False
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(echo)} 
                          {
                            (DQ ('Error: ') ($ VSub_Name '$DOCKER') 
                              (' is the Docking System Tray - install docker.io instead')
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ';'>)
                  ]
                  spids: [103]
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {($ VSub_Name '$DOCKER')} {(version)})
                    (C {(grep)} {(-q)} {(DQ ('^Client version:'))})
                  ]
                  negated: False
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(echo)} 
                          {
                            (DQ ('Error: unexpected output from ') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\"'>
                              ) ($ VSub_Name '$DOCKER') (' version') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ';'>)
                  ]
                  spids: [138]
                )
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {($ VSub_Name '$DOCKER')} {(version)})
                    (C {(grep)} {(-q)} {(DQ ('^Server version:'))})
                  ]
                  negated: False
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(echo)} 
                          {
                            (DQ 
                              (
'Error: could not get docker server version - check it is running and your permissions'
                              )
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ';'>)
                  ]
                  spids: [175]
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [19]
        )
      spids: [13 18]
    )
    (FuncDef
      name: initcontainer
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                (BraceGroup
                  children: [
                    (Sentence
                      child: (C {(echo)} {(DQ ('Error: platform name must be specified'))})
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ';'>)
                  ]
                  spids: [216]
                )
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DFILE)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$ROOTDIR') (/contrib/docker/) ($ VSub_Number '$1'))}
                  spids: [234]
                )
              ]
              spids: [234]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$DFILE'))} {(Lit_Other ']')})
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(echo)} {(DQ ('Error: docker file ') ($ VSub_Name '$DFILE') (' not found'))})
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ';'>)
                  ]
                  spids: [254]
                )
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CONTAINER)
                  op: Equal
                  rhs: {(DQ (hg-dockerrpm-) ($ VSub_Number '$1'))}
                  spids: [274]
                )
              ]
              spids: [274]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:DBUILDUSER) op:Equal rhs:{(build)} spids:[281])]
              spids: [281]
            )
            (Pipeline
              children: [
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (C {(cat)} {($ VSub_Name '$DFILE')})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} 
                                      {
                                        (CommandSubPart
                                          command_list: (CommandList children:[(C {(uname)})])
                                          left_token: <Left_CommandSub '$('>
                                          spids: [297 299]
                                        )
                                      } {(Lit_Other '=')} {(DQ (Darwin))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(echo)} {(RUN)} {(useradd)} {($ VSub_Name '$DBUILDUSER')} {(-u)} 
                                  {(1000)}
                                )
                              ]
                              spids: [-1 311]
                            )
                          ]
                          else_action: [
                            (C {(echo)} {(RUN)} {(groupadd)} {($ VSub_Name '$DBUILDUSER')} {(-g)} 
                              {
                                (CommandSubPart
                                  command_list: (CommandList children:[(C {(id)} {(-g)})])
                                  left_token: <Left_Backtick '`'>
                                  spids: [352 356]
                                )
                              }
                            )
                            (C {(echo)} {(RUN)} {(useradd)} {($ VSub_Name '$DBUILDUSER')} {(-u)} 
                              {
                                (CommandSubPart
                                  command_list: (CommandList children:[(C {(id)} {(-u)})])
                                  left_token: <Left_Backtick '`'>
                                  spids: [369 373]
                                )
                              } {(-g)} {($ VSub_Name '$DBUILDUSER')}
                            )
                          ]
                          spids: [339 380]
                        )
                      ]
                    )
                  spids: [285 383]
                )
                (C {($ VSub_Name '$DOCKER')} {(build)} {(--tag)} {($ VSub_Name '$CONTAINER')} {(-)})
              ]
              negated: False
            )
          ]
          spids: [203]
        )
      spids: [197 202]
    )
  ]
)