(command.CommandList children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-ne>} {<2>} {<Id.Lit_RBracket ']'>}) ] ) action: [ (command.Simple words: [ {<echo>} {(DQ <'usage: '> ($ Id.VSub_Number '$0') <' '>) (SQ <'$ARCH $CONTROL_IMAGE'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [11 23] ) ] ) (command.ForEach iter_name: i iter_words: [ (word.BracedTree parts: [ <'build/'> (word_part.BracedTuple words:[{<root-filesystem>} {<native-compiler>}]) <-> (DQ ($ Id.VSub_Number '$1')) ] ) {(DQ ($ Id.VSub_Number '$2'))} ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {(DQ ($ Id.VSub_DollarName '$i'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'No '> ($ Id.VSub_DollarName '$i'))}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [76 91] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<id>} {<-u>}))} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'Not root'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [115 133] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$CHROOT'))} {<Id.Lit_RBracket ']'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROOT) op: assign_op.Equal rhs: {(DQ <'build/chroot-'> ($ Id.VSub_Number '$1'))} spids: [168] ) ] ) ] ) (C {<trap>} {(SQ <'more/zapchroot.sh "$CHROOT"'>)} {<EXIT>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ ($ Id.VSub_DollarName '$CHROOT'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<'more/zapchroot.sh'>} {(DQ ($ Id.VSub_DollarName '$CHROOT'))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] spids: [182 194] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cp>} {<-lan>} {(DQ <'build/root-filesystem-'> ($ Id.VSub_Number '$1') <'/.'>)} {(DQ ($ Id.VSub_DollarName '$CHROOT'))} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cp>} {<-lan>} {(DQ <'build/native-compiler-'> ($ Id.VSub_Number '$1') <'/.'>)} {(DQ ($ Id.VSub_DollarName '$CHROOT'))} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>}) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<mount>} {<-o>} {<bind>} {(DQ ($ Id.VSub_Number '$2'))} {(DQ ($ Id.VSub_DollarName '$CHROOT') <'/mnt'>)} ) (C {<mount>} {<-o>} {<remount> <Id.Lit_Comma ','> <ro>} {(DQ ($ Id.VSub_DollarName '$CHROOT') <'/mnt'>)} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] spids: [259 271] ) ] else_action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mount>} {<-o>} {<loop>} {(DQ ($ Id.VSub_Number '$2'))} {(DQ ($ Id.VSub_DollarName '$CHROOT') <'/mnt'>)} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] ) (command.Simple words: [{<chroot>} {(DQ ($ Id.VSub_DollarName '$CHROOT'))} {<'/sbin/init.sh'>}] more_env: [ (env_pair name:CPUS val:{<1>} spids:[341]) (env_pair name:HOST val:{(DQ ($ Id.VSub_Number '$1'))} spids:[344]) ] do_fork: T ) ] )