(CommandList children: [ (FuncDef name: blank_tempdir body: (BraceGroup children: [ (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) (C {(dienow)}) ] ) (AndOr ops: [Op_DPipe] children: [(C {(touch)} {(-c)} {(DQ ($ VSub_Number '$1'))}) (C {(dienow)})] ) (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$NO_CLEANUP'))} {(Lit_Other ']')}) (C {(rm)} {(-rf)} {(DQ ($ VSub_Number '$1'))}) ] ) (AndOr ops: [Op_DPipe] children: [(C {(mkdir)} {(-p)} {(DQ ($ VSub_Number '$1'))}) (C {(dienow)})] ) ] spids: [16] ) spids: [12 15] ) (FuncDef name: sha1file body: (BraceGroup children: [ (Pipeline children: [ (C {(sha1sum)} {(/dev/null)} {(DQ ($ VSub_At '$@'))}) (C {(tail)} {(-n)} {(Lit_Other '+') (2)}) (C {(awk)} {(SQ <'{print $1}'>)}) ] negated: F ) ] spids: [100] ) spids: [96 99] ) (FuncDef name: actually_dienow body: (BraceGroup children: [ (SimpleCommand words: [ {(echo)} {(-e)} { (DQ (Lit_Other '\\') (n) (Lit_Other '\\') ('e[31mExiting due to errors (') ($ VSub_Name '$ARCH_NAME') (' ') ($ VSub_Name '$STAGE_NAME') (' ') ($ VSub_Name '$PACKAGE') (')') (Lit_Other '\\') ('e[0m') ) } ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [142] ) spids: [138 141] ) (C {(trap)} {(actually_dienow)} {(SIGUSR1)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TOPSHELL) op: Equal rhs: {($ VSub_Dollar '$$')} spids: [181] ) ] spids: [181] ) (FuncDef name: dienow body: (BraceGroup children: [ (C {(kill)} {(-USR1)} {($ VSub_Name '$TOPSHELL')}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [189] ) spids: [185 188] ) (FuncDef name: dotprogress body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(0)} spids:[220])] spids: [220] ) (WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(i)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:x) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$x')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [235 241] ) } spids: [234] ) ] spids: [234] ) (If arms: [ (if_arm cond: [ (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {(DQ ($ VSub_Name '$x'))} right: {(25)} ) ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:x) op: Equal rhs: {(0)} spids: [262] ) ] spids: [262] ) (C {(echo)} {(-n)} {(.)}) ] spids: [16777215 259] ) ] spids: [16777215 273] ) ] spids: [231 276] ) ) (C {(echo)}) ] spids: [217] ) spids: [213 216] ) (FuncDef name: announce body: (BraceGroup children: [ (C {(echo)} { (DQ ('=== ') ($ VSub_Number '$1') (' (') ($ VSub_Name '$ARCH_NAME') (' ') ($ VSub_Name '$STAGE_NAME') (')') ) } ) (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$NO_TITLE_BAR'))} {(Lit_Other ']')}) (C {(echo)} {(-en)} { (DQ (Lit_Other '\\') ('033]2;') ($ VSub_Name '$ARCH_NAME') (' ') ($ VSub_Name '$STAGE_NAME') (' ') ($ VSub_Number '$1') (Lit_Other '\\') (007) ) } ) ] ) ] spids: [292] ) spids: [288 291] ) (FuncDef name: maybe_quiet body: (BraceGroup children: [ (AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$FORK'))} {(Lit_Other ']')}) (C {(cat)}) (C {(grep)} {(DQ ('^==='))}) ] ) ] spids: [356] ) spids: [352 355] ) (FuncDef name: maybe_fork body: (BraceGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$BUILD_VERBOSE'))} {(Lit_Other ']')}) (C {(echo)} {(DQ ($ VSub_Star '$*'))}) ] ) (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$FORK'))} {(Lit_Other ']')})] action: [(C {(eval)} {(DQ ($ VSub_Star '$*'))})] spids: [16777215 428] ) ] else_action: [ (Sentence child: (C {(eval)} {(DQ ($ VSub_Star '$*'))}) terminator: <Op_Amp '&'> ) ] spids: [438 450] ) ] spids: [392] ) spids: [388 391] ) (FuncDef name: killtree body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:KIDS) op:Equal rhs:{(DQ )} spids:[468])] spids: [466] ) (WhileUntil keyword: <KW_While while> cond: [(C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ne)} {(0)} {(Lit_Other ']')})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KIDS) op: Equal rhs: { (DQ ($ VSub_Name '$KIDS') (' ') (CommandSubPart command_list: (CommandList children: [(C {(pgrep)} {(-P) ($ VSub_Number '$1')})] ) left_token: <Left_CommandSub '$('> spids: [494 499] ) ) } spids: [490] ) ] spids: [490] ) (C {(shift)}) ] spids: [487 506] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KIDS) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(echo)} {(-n)} {($ VSub_Name '$KIDS')})] ) left_token: <Left_CommandSub '$('> spids: [512 518] ) ) } spids: [510] ) ] spids: [510] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$KIDS'))} {(Lit_Other ']')} ) ] action: [ (C {(killtree)} {($ VSub_Name '$KIDS')}) (SimpleCommand words: [{(kill)} {($ VSub_Name '$KIDS')}] redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) ] spids: [16777215 537] ) ] spids: [16777215 557] ) ] spids: [463] ) spids: [459 462] ) (FuncDef name: path_search body: (BraceGroup children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(sed)} {(SQ <'s/:/\\n/g'>)}) (WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(DIR)})] body: (DoGroup children: [ (Pipeline children: [ (C {(find)} {(DQ ($ VSub_Name '$DIR') (/))} {(-maxdepth)} {(1)} {(-mindepth)} {(1)} {(-name)} {(DQ ($ VSub_Number '$2'))} ) (C {(sed)} {(SQ <'s@.*/@@'>)}) (WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(FILE)})] body: (DoGroup children: [ (C {(eval)} {(DQ ($ VSub_Number '$3'))}) (C {(echo)} {($ VSub_Name '$FILE')}) ] spids: [659 680] ) ) ] negated: F ) ] spids: [616 683] ) ) ] negated: F ) ] spids: [577] ) spids: [573 576] ) (FuncDef name: check_prerequisite body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(-z)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(which)} {(DQ ($ VSub_Number '$1'))})] ) left_token: <Left_CommandSub '$('> spids: [706 712] ) ) } {(Lit_Other ']')} ) ] action: [ (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$FAIL_QUIET'))} {(Lit_Other ']')}) (SimpleCommand words: [ {(echo)} {(No)} {(DQ ($ VSub_Number '$1'))} {(KW_In in)} {(SQ <'$PATH'>) (.)} ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) ] ) (C {(dienow)}) ] spids: [16777215 718] ) ] spids: [16777215 755] ) ] spids: [696] ) spids: [692 695] ) (FuncDef name: collapse_hardlinks body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SHA1LIST) op:Equal rhs:{(DQ )} spids:[774])] spids: [774] ) (Pipeline children: [ (C {(find)} {(DQ ($ VSub_Number '$1'))} {(-type)} {(f)}) (WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(FILE)})] body: (DoGroup children: [ (C {(echo)} {(DQ ($ VSub_Name '$FILE'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SHA1) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(sha1file)} {(DQ ($ VSub_Name '$FILE'))})] ) left_token: <Left_CommandSub '$('> spids: [809 815] ) } spids: [808] ) ] spids: [808] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MATCH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$SHA1LIST'))}) (C {(grep)} {(DQ ('^') ($ VSub_Name '$SHA1'))}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [819 834] ) } spids: [818] ) ] spids: [818] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MATCH'))} {(Lit_Other ']')} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SHA1LIST) op: Equal rhs: { (DQ ($ VSub_Name '$SHA1LIST') ('\n') ($ VSub_Name '$SHA1') (' ') ($ VSub_Name '$FILE') ) } spids: [857] ) ] spids: [857] ) ] spids: [16777215 850] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FILE2) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$MATCH'))}) (C {(sed)} {(SQ <'s/[^ ]* //'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [872 886] ) ) } spids: [870] ) ] spids: [870] ) (AndOr ops: [Op_DPipe] children: [ (C {(cmp)} {(-s)} {(DQ ($ VSub_Name '$FILE'))} {(DQ ($ VSub_Name '$FILE2'))} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(ln)} {(-f)} {(DQ ($ VSub_Name '$FILE'))} {(DQ ($ VSub_Name '$FILE2'))} ) (C {(dienow)}) ] ) ] spids: [867 924] ) ] spids: [798 927] ) ) ] negated: F ) ] spids: [771] ) spids: [767 770] ) (FuncDef name: is_in_list body: (BraceGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other '=') (Lit_Other '=')} {(all)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(Lit_Comma ',') (DQ ($ VSub_Number '$2')) (Lit_Comma ',')} ) (C {(grep)} {(Lit_Comma ',') (DQ ($ VSub_Number '$1')) (Lit_Comma ',')} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [965 983] ) ) } {(Lit_Other ']')} ) ] ) ] spids: [940] ) spids: [936 939] ) ] )