(command.CommandList children: [ (C {<set>} {<-e>}) (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name TOP_DIR> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonEquals ':='> arg_word: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} { (DQ (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) ) ) } ) ) <'/..'> ) } ) (C {<pwd>}) ] ) ) ) } ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmp) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<--tmpdir>} {<manifest-sort-XXX>}) ) } spids: [49] ) ] ) (command.ShFunction name: cleanup body: (BraceGroup children:[(C {<rm>} {<-f>} {(${ Id.VSub_Name tmp)})]) ) (C {<trap>} {<cleanup>} {<EXIT>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:boards) op: assign_op.Equal rhs: {(SQ <'amd64-usr arm64-usr'>)} spids: [85] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:flavors) op: assign_op.Equal rhs: {(SQ <'usr_from_coreos usr_from_kvm'>)} spids: [90] ) ] ) (command.ForEach iter_name: board iter_words: [{(${ Id.VSub_Name boards)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: flavor iter_words: [{(${ Id.VSub_Name flavors)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dir) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name TOP_DIR) <'/stage1/'> (${ Id.VSub_Name flavor) <'/manifest-'> (${ Id.VSub_Name board) <'.d/'> ) } spids: [124] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:files) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<find>} {(${ Id.VSub_Name dir)} {<-type>} {<f>} {<-name>} {(SQ <'*.manifest'>)} ) ) } spids: [141] ) ] ) (command.ForEach iter_name: f iter_words: [{(${ Id.VSub_Name files)}] do_arg_iter: F body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name f)}) (C {<sort>}) (C {<uniq>}) (command.Simple words: [{<sed>} {(SQ <'/^$/d'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name tmp)} ) ] do_fork: T ) ] negated: F ) (C {<cp>} {(${ Id.VSub_Name tmp)} {(${ Id.VSub_Name f)}) ] ) ) ] ) ) ] ) ) ] )