(CommandList
  children: [
    (FuncDef
      name: pull_repo
      body: 
        (BraceGroup
          children: [
            (C {(rm)} {(-rf)} {(DQ (packages/alt-) ($ VSub_Number '$1') (-0.tar.bz2))} 
              {(build/packages/alt-) ($ VSub_Number '$1')}
            )
            (C {(mkdir)} {(-p)} {(build/packages/alt-) ($ VSub_Number '$1')})
            (AndOr
              ops: [Op_DAmp Op_DAmp Op_DAmp]
              children: [
                (C {(pushd)} {(build/packages/alt-) ($ VSub_Number '$1')})
                (C {(ln)} {(-s)} {(../../../repos/) ($ VSub_Number '$1') (/.git)} {(.git)})
                (C {(git)} {(checkout)} {(-f)} {(master)})
                (C {(git)} {(pull)})
              ]
            )
            (C {(popd)})
          ]
          spids: [16]
        )
      spids: [12 15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SNAPSHOTS)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(find)} {(snapshots)} {(-mindepth)} {(1)} {(-maxdepth)} {(1)} {(-type)} {(d)})
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [94 110]
                )
              )
            }
          spids: [92]
        )
      ]
      spids: [92]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:COUNT)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (ArithBinary
                    op_id: Arith_Minus
                    left: 
                      (ArithWord
                        w: 
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {(DQ ($ VSub_Name '$SNAPSHOTS'))})
                                        (C {(wc)} {(-l)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [116 128]
                            )
                          }
                      )
                    right: (ArithWord w:{(Lit_Digits 30)})
                  )
                spids: [114 135]
              )
            }
          spids: [113]
        )
      ]
      spids: [113]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {(DQ ($ VSub_Name '$COUNT'))} {(-gt)} {(0)} {(Lit_Other ']')})]
          action: [
            (C {(rm)} {(-rf)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_Name '$SNAPSHOTS'))})
                            (C {(sort)})
                            (C {(head)} {(-n)} {($ VSub_Name '$COUNT')})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [162 182]
                )
              }
            )
            (C {(rm)} {(-rf)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(find)} {(-L)} {(snapshots)} {(-type)} {(l)})]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [189 199]
                )
              }
            )
          ]
          spids: [16777215 151]
        )
      ]
      spids: [16777215 201]
    )
    (C {(echo)} {(Lit_Other '=') (Lit_Other '=') (Lit_Other '=')} {(Begin)} {(cron)} {(job)})
    (C {(export)} 
      {(Lit_VarLike 'SNAPSHOT_DATE=') 
        (CommandSubPart
          command_list: (CommandList children:[(C {(date)} {(Lit_Other '+') (DQ ('%Y-%m-%d'))})])
          left_token: <Left_CommandSub '$('>
          spids: [224 231]
        )
      }
    )
    (AndOr
      ops: [Op_DAmp Op_DAmp Op_DPipe]
      children: [
        (C {(mkdir)} {(-p)} {(snapshots/) ($ VSub_Name '$SNAPSHOT_DATE') (/base)})
        (C {(rm)} {(snapshots/latest)})
        (C {(ln)} {(-sf)} {($ VSub_Name '$SNAPSHOT_DATE')} {(snapshots/latest)})
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
    )
    (FuncDef
      name: build_snapshot
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$USE_ALT'))} {(Lit_Other ']')})]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SNAPNAME)
                          op: Equal
                          rhs: {(base)}
                          spids: [291]
                        )
                      ]
                      spids: [291]
                    )
                  ]
                  spids: [16777215 288]
                )
              ]
              else_action: [
                (C {(pull_repo)} {($ VSub_Name '$USE_ALT')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:SNAPNAME)
                      op: Equal
                      rhs: {($ VSub_Name '$USE_ALT')}
                      spids: [303]
                    )
                  ]
                  spids: [303]
                )
              ]
              spids: [295 307]
            )
            (C {(echo)} {(Lit_Other '=') (Lit_Other '=') (Lit_Other '=')} {(Building)} {(snapshot)} 
              {($ VSub_Name '$SNAPNAME')}
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_ALT'))} {(Lit_Other '=') (Lit_Other '=')} 
                  {(linux)} {(Lit_Other ']')}
                )
                (C {(more/for-each-arch.sh)} {(SQ <'more/migrate-kernel.sh $TARGET'>)})
              ]
            )
            (C {(./download.sh)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(cmp)} {(-s)} {(snapshots/latest/) ($ VSub_Name '$SNAPNAME') (/MANIFEST)} 
                      {(packages/MANIFEST)}
                    )
                  ]
                  action: [
                    (C {(cp)} {(-rl)} 
                      {(snapshots/latest/) ($ VSub_Name '$SNAPNAME') (/) (Lit_Other '*')} {(snapshots/) ($ VSub_Name '$SNAPSHOT_DATE') (/) ($ VSub_Name '$SNAPNAME')}
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [16777215 376]
                )
              ]
              spids: [16777215 397]
            )
            (C {(nice)} {(-n)} {(20)} {(more/buildall.sh)})
            (C {(rm)} {(build/simple-cross-compiler-) (Lit_Other '*') (.tar.bz2)})
            (C {(mv)} {(build/) (Lit_Other '*') (.tar.bz2)} {(build/logs)} {(build/MANIFEST)} 
              {(snapshots/) ($ VSub_Name '$SNAPSHOT_DATE') (/) ($ VSub_Name '$SNAPNAME')}
            )
          ]
          spids: [272]
        )
      spids: [268 271]
    )
    (C {(build_snapshot)} {(base)})
    (C {(echo)} {(Lit_Other '=') (Lit_Other '=') (Lit_Other '=')} {(Building)} {(QEMU)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:QPATH) op:Equal rhs:{(DQ )} spids:[460])]
      spids: [460]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CPUS)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} 
                            {(/sys/devices/system/cpu/cpu) (Lit_Other '[') (0-9) (Lit_Other ']') 
                              (Lit_Other '*')
                            }
                          )
                          (C {(wc)} {(-w)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [465 479]
              )
            }
          spids: [464]
        )
      ]
      spids: [464]
    )
    (C {(pull_repo)} {(qemu)})
    (C {(pushd)} {(build/packages/alt-qemu)})
    (AndOr
      ops: [Op_DAmp Op_DAmp]
      children: [
        (C {(./configure)} {(--disable-werror)})
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(nice)} {(-n)} {(20)} {(make)} {(-j)} {($ VSub_Name '$CPUS')}]
              redirects: [(Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})]
            )
            (C {(tee)} {(build/logs/alt-qemu.txt)})
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:QPATH)
              op: Equal
              rhs: 
                {
                  (DQ 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (ForEach
                              iter_name: i
                              iter_words: [{(Lit_Other '*') (-softmmu)}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (Sentence
                                      child: 
                                        (C {(echo)} {(-n)} 
                                          {
                                            (CommandSubPart
                                              command_list: (CommandList children:[(C {(pwd)})])
                                              left_token: <Left_CommandSub '$('>
                                              spids: [536 538]
                                            ) (/) ($ VSub_Name '$i') (Lit_Other ':')
                                          }
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [530 544]
                                )
                              spids: [526 529]
                            )
                          ]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [520 545]
                    )
                  )
                }
              spids: [518]
            )
          ]
          spids: [518]
        )
      ]
    )
    (C {(popd)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$QPATH'))} {(Lit_Other ']')})
        (SimpleCommand
          words: [
            {(more/for-each-target.sh)}
            {
              (SQ 
                <
'more/smoketest.sh $TARGET | tee snapshots/$SNAPSHOT_DATE/base/logs/newqemu-smoketest-$TARGET.txt'
                >
              )
            }
          ]
          more_env: [
            (env_pair
              name: PATH
              val: {(DQ ($ VSub_Name '$QPATH') (':') ($ VSub_Name '$PATH'))}
              spids: [568]
            )
          ]
        )
      ]
    )
  ]
)