(CommandList children: [ (C {(Lit_Other ":")} {(tw)} {(Lit_Other "+")} {(pax)} {(KW_For for)} {(backup)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:command) op:Equal rhs:{(bax)} spids:[85])] spids: [85] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:customize) op: Equal rhs: {(../lib/) (${ VSub_Name command) (/init)} spids: [88] ) ] spids: [88] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs:(LhsName name:root) op:Equal rhs:{(SQ )} spids:[106]) (assign_pair lhs:(LhsName name:arch_name) op:Equal rhs:{(SQ )} spids:[108]) (assign_pair lhs:(LhsName name:arch_keep) op:Equal rhs:{(SQ )} spids:[110]) (assign_pair lhs:(LhsName name:big_size) op:Equal rhs:{(SQ )} spids:[112]) (assign_pair lhs:(LhsName name:big_magic_keep) op:Equal rhs:{(SQ )} spids:[114]) ] spids: [106] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs:(LhsName name:name_skip) op:Equal rhs:{(SQ )} spids:[116]) (assign_pair lhs:(LhsName name:path_skip) op:Equal rhs:{(SQ )} spids:[118]) (assign_pair lhs:(LhsName name:reg_magic_skip) op:Equal rhs:{(SQ )} spids:[120]) (assign_pair lhs:(LhsName name:src_name) op:Equal rhs:{(SQ )} spids:[122]) (assign_pair lhs:(LhsName name:src_magic_skip) op:Equal rhs:{(SQ )} spids:[124]) ] spids: [116] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ifs) op: Equal rhs: { (BracedVarSub token: <VSub_Name IFS> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ <"\n"> <"\t ">)}) spids: [128 135] ) } spids: [127] ) ] spids: [127] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(Lit_Other ":")} spids:[137])] spids: [137] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:path) op:Equal rhs:{($ VSub_Name "$PATH")} spids:[140])] spids: [140] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{($ VSub_Name "$ifs")} spids:[143])] spids: [143] ) (ForEach iter_name: dir iter_words: [{($ VSub_Name "$path")}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [(C {(test)} {(-f)} {($ VSub_Name "$dir") (/) ($ VSub_Name "$customize")})] action: [ (C {(.)} {($ VSub_Name "$dir") (/) ($ VSub_Name "$customize")}) (ControlFlow token:<ControlFlow_Break break>) ] spids: [-1 167] ) ] spids: [-1 179] ) ] spids: [154 181] ) spids: [151 -1] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:root) op: Equal rhs: { (BracedVarSub token: <VSub_Name root> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ </>)}) spids: [195 201] ) } spids: [194] ) ] spids: [194] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arch_name) op: Equal rhs: { (BracedVarSub token: <VSub_Name arch_name> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <arch>)}) spids: [215 221] ) } spids: [214] ) ] spids: [214] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arch_keep) op: Equal rhs: { (BracedVarSub token: <VSub_Name arch_keep> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <"bin|fun|lib">)}) spids: [224 230] ) } spids: [223] ) ] spids: [223] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:big_size) op: Equal rhs: { (BracedVarSub token: <VSub_Name big_size> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(5000000)}) spids: [244 248] ) } spids: [243] ) ] spids: [243] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:big_magic_keep) op: Equal rhs: { (BracedVarSub token: <VSub_Name big_magic_keep> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <mail>)}) spids: [251 257] ) } spids: [250] ) ] spids: [250] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name_skip) op: Equal rhs: { (BracedVarSub token: <VSub_Name name_skip> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(SQ <"?(*.)(old|save|tmp)?(.*)|.*-cache">)} ) spids: [274 280] ) } spids: [273] ) ] spids: [273] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:path_skip) op: Equal rhs: { (BracedVarSub token: <VSub_Name path_skip> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(SQ <"/dev|/usr/local/ast/ship">)} ) spids: [283 289] ) } spids: [282] ) ] spids: [282] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:reg_magic_skip) op: Equal rhs: { (BracedVarSub token: <VSub_Name reg_magic_skip> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(SQ <"core|cql * index|history|TeX dvi">)} ) spids: [303 309] ) } spids: [302] ) ] spids: [302] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:src_name) op: Equal rhs: { (BracedVarSub token: <VSub_Name src_name> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <src>)}) spids: [323 329] ) } spids: [322] ) ] spids: [322] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:src_magic_skip) op: Equal rhs: { (BracedVarSub token: <VSub_Name src_magic_skip> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(SQ <"executable|object|(archive|shared) library">)} ) spids: [332 338] ) } spids: [331] ) ] spids: [331] ) (Case to_match: {($ VSub_Pound "$#")} arms: [ (case_arm pat_list: [{(Lit_Other "[") (01) (Lit_Other "]")}] action: [ (SimpleCommand words: [{(echo)} {(DQ ("Usage: ") ($ VSub_Name "$command") (" delta base [dir ...]"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[360])] ) (C {(exit)} {(2)}) ] spids: [347 350 369 -1] ) ] spids: [341 345 371] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:delta) op:Equal rhs:{($ VSub_Number "$1")} spids:[373])] spids: [373] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:base) op:Equal rhs:{($ VSub_Number "$2")} spids:[378])] spids: [378] ) (C {(shift)}) (Case to_match: {($ VSub_Pound "$#")} arms: [ (case_arm pat_list: [{(0)}] action: [(C {(set)} {($ VSub_Name "$root")})] spids: [389 390 396 -1] ) ] spids: [383 387 398] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:dirs) op:Equal rhs:{(SQ )} spids:[400])] spids: [400] ) (While cond: [(C {(Lit_Other ":")})] body: (DoGroup children: [ (Case to_match: {($ VSub_Pound "$#")} arms: [ (case_arm pat_list: [{(0)}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [415 416 420 -1] ) ] spids: [408 412 423] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dirs) op: Equal rhs: {(DQ ($ VSub_Name "$dirs") (" -d ") ($ VSub_Number "$1"))} spids: [426] ) ] spids: [426] ) (C {(shift)}) ] spids: [406 436] ) ) (Pipeline children: [ (C {(tw)} {($ VSub_Name "$dirs")} {(-mH)} {(-e)} { (DQ ("\n") ("\n") ("begin:\tint\tarch_bit = 1;\n") ("\tint\tsrc_bit = 2;\n") ("\tchar*\tm;\n") ("\n") ("sort:\tname;\n") ("\n") ("select:\tif (name == '") (${ VSub_Name name_skip) ("')\n") ("\t\tstatus = SKIP;\n") ("\telse if (type == REG)\n") ("\t{\n") ("\t\tm = magic;\n") ("\t\tif (size > ") (${ VSub_Name big_size) (" && m != '*@(") (${ VSub_Name big_magic_keep) (")*' ||\n") ("\t\t m == '*@(") (${ VSub_Name reg_magic_skip) (")*' ||\n") ("\t\t (parent.local & src_bit) && m == '*@(") (${ VSub_Name src_magic_skip) (")*')\n") ("\t\t\tstatus = SKIP;\n") ("\t}\n") ("\telse if (type == DIR)\n") ("\t{\n") ("\t\tlocal = (parent.local & src_bit);\n") ("\t\tif (dev != parent.dev || path == '") (${ VSub_Name path_skip) ("' || (parent.parent.local & arch_bit) && name != '") (${ VSub_Name arch_keep) ("')\n") ("\t\t\tstatus = SKIP;\n") ("\t\telse if (name == '") (${ VSub_Name arch_name) ("')\n") ("\t\t\tlocal |= arch_bit;\n") ("\t\telse if (name == '") (${ VSub_Name src_name) ("')\n") ("\t\t\tlocal |= src_bit;\n") ("\t}\n") ("\treturn 1;\n") ) } ) (C {(pax)} {(-o)} { (DQ ("write ordered physical verbose file=") ($ VSub_Name "$delta") (" base=") ($ VSub_Name "$base") ) } ) ] negated: False ) ] )