(command.CommandList children: [ (command.ShFunction name: pull_repo body: (BraceGroup children: [ (C {<rm>} {<-rf>} {(DQ <'packages/alt-'> ($ Id.VSub_Number '$1') <-0.tar.bz2>)} {<'build/packages/alt-'> ($ Id.VSub_Number '$1')} ) (C {<mkdir>} {<-p>} {<'build/packages/alt-'> ($ Id.VSub_Number '$1')}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<pushd>} {<'build/packages/alt-'> ($ Id.VSub_Number '$1')}) (C {<ln>} {<-s>} {<'../../../repos/'> ($ Id.VSub_Number '$1') <'/.git'>} {<.git>}) (C {<git>} {<checkout>} {<-f>} {<master>}) (C {<git>} {<pull>}) ] ) (C {<popd>}) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SNAPSHOTS) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<find>} {<snapshots>} {<-mindepth>} {<1>} {<-maxdepth>} {<1>} {<-type>} {<d>}) ) ) } spids: [92] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COUNT) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$SNAPSHOTS'))}) (C {<wc>} {<-l>}) ] negated: F ) ) } right: {<Id.Lit_Digits 30>} ) ) } spids: [113] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$COUNT'))} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<rm>} {<-rf>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$SNAPSHOTS'))}) (C {<sort>}) (C {<head>} {<-n>} {($ Id.VSub_DollarName '$COUNT')}) ] negated: F ) ) } ) (C {<rm>} {<-rf>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<find>} {<-L>} {<snapshots>} {<-type>} {<l>}) ) } ) ] spids: [137 151] ) ] ) (C {<echo>} {<Id.Lit_Equals '='> <Id.Lit_Equals '='> <Id.Lit_Equals '='>} {<Begin>} {<cron>} {<job>}) (C {<export>} {<Id.Lit_VarLike 'SNAPSHOT_DATE='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> (DQ <'%Y-%m-%d'>)}) ) } ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {<'snapshots/'> ($ Id.VSub_DollarName '$SNAPSHOT_DATE') <'/base'>}) (C {<rm>} {<'snapshots/latest'>}) (C {<ln>} {<-sf>} {($ Id.VSub_DollarName '$SNAPSHOT_DATE')} {<'snapshots/latest'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.ShFunction name: build_snapshot body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$USE_ALT'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SNAPNAME) op: assign_op.Equal rhs: {<base>} spids: [291] ) ] ) ] spids: [275 288] ) ] else_action: [ (C {<pull_repo>} {($ Id.VSub_DollarName '$USE_ALT')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SNAPNAME) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$USE_ALT')} spids: [303] ) ] ) ] ) (C {<echo>} {<Id.Lit_Equals '='> <Id.Lit_Equals '='> <Id.Lit_Equals '='>} {<Building>} {<snapshot>} {($ Id.VSub_DollarName '$SNAPNAME')} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$USE_ALT'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {<linux>} {<Id.Lit_RBracket ']'>} ) (C {<'more/for-each-arch.sh'>} {(SQ <'more/migrate-kernel.sh $TARGET'>)}) ] ) (C {<'./download.sh'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<cmp>} {<-s>} {<'snapshots/latest/'> ($ Id.VSub_DollarName '$SNAPNAME') <'/MANIFEST'>} {<'packages/MANIFEST'>} ) ] ) action: [ (C {<cp>} {<-rl>} {<'snapshots/latest/'> ($ Id.VSub_DollarName '$SNAPNAME') <'/'> <Id.Lit_Star '*'>} {<'snapshots/'> ($ Id.VSub_DollarName '$SNAPSHOT_DATE') <'/'> ($ Id.VSub_DollarName '$SNAPNAME')} ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [363 376] ) ] ) (C {<nice>} {<-n>} {<20>} {<'more/buildall.sh'>}) (C {<rm>} {<'build/simple-cross-compiler-'> <Id.Lit_Star '*'> <.tar.bz2>}) (C {<mv>} {<'build/'> <Id.Lit_Star '*'> <.tar.bz2>} {<'build/logs'>} {<'build/MANIFEST'>} {<'snapshots/'> ($ Id.VSub_DollarName '$SNAPSHOT_DATE') <'/'> ($ Id.VSub_DollarName '$SNAPNAME') } ) ] ) ) (C {<build_snapshot>} {<base>}) (C {<echo>} {<Id.Lit_Equals '='> <Id.Lit_Equals '='> <Id.Lit_Equals '='>} {<Building>} {<QEMU>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:QPATH) op: assign_op.Equal rhs: {(DQ )} spids: [460] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPUS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<'/sys/devices/system/cpu/cpu'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ) (C {<wc>} {<-w>}) ] negated: F ) ) } spids: [464] ) ] ) (C {<pull_repo>} {<qemu>}) (C {<pushd>} {<'build/packages/alt-qemu'>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<'./configure'>} {<--disable-werror>}) (command.Pipeline children: [ (command.Simple words: [{<nice>} {<-n>} {<20>} {<make>} {<-j>} {($ Id.VSub_DollarName '$CPUS')}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) (C {<tee>} {<'build/logs/alt-qemu.txt'>}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:QPATH) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.ForEach iter_name: i iter_words: [{<Id.Lit_Star '*'> <-softmmu>}] do_arg_iter: F body: (command.DoGroup children: [ (command.Sentence child: (C {<echo>} {<-n>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<pwd>}) ) <'/'> ($ Id.VSub_DollarName '$i') <Id.Lit_Colon ':'> } ) terminator: <Id.Op_Semi _> ) ] ) ) ) ) } spids: [518] ) ] ) ] ) (C {<popd>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$QPATH'))} {<Id.Lit_RBracket ']'>}) (command.Simple 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 ($ Id.VSub_DollarName '$QPATH') <':'> ($ Id.VSub_DollarName '$PATH'))} spids: [568] ) ] do_fork: T ) ] ) ] )