(CommandList children: [ (FuncDef name: usage body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 146 stdin_parts: [ ('usage: ') (CommandSubPart command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})]) left_token: <Left_Backtick '`'> spids: [108 112] ) (' [options] command ... [path]\n') ('\n') ('Options:\n') (' -b basedir -- Operate on a system mounted at basedir\n') (' (default: /)\n') (' -d workdir -- Store working files in workdir\n') (' (default: /var/db/freebsd-update/)\n') (' -f conffile -- Read configuration options from conffile\n') (' (default: /etc/freebsd-update.conf)\n') (' -F -- Force a fetch operation to proceed\n') (' -k KEY -- Trust an RSA key with SHA256 hash of KEY\n') (' -r release -- Target for upgrade (e.g., 11.1-RELEASE)\n') (' -s server -- Server from which to fetch updates\n') (' (default: update.FreeBSD.org)\n') (' -t address -- Mail output of cron command, if any, to address\n') (' (default: root)\n') (' --not-running-from-cron\n') (' -- Run without a tty, for use by automated tools\n') (' --currently-running release\n') (' -- Update as if currently running this release\n') ('Commands:\n') (' fetch -- Fetch updates from server\n') (' cron -- Sleep rand(3600) seconds, fetch updates, and send an\n') (' email if updates were found\n') ( ' upgrade -- Fetch upgrades to FreeBSD version specified via -r option\n' ) (' install -- Install downloaded updates or upgrades\n') (' rollback -- Uninstall most recently installed updates\n') (' IDS -- Compare the system against an index of ') (Right_DoubleQuote '"') ('known good') (Right_DoubleQuote '"') (' files.\n') ] ) ] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [99] ) spids: [94 98] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONFIGOPTIONS) op: Equal rhs: { (DQ ('KEYPRINT WORKDIR SERVERNAME MAILTO ALLOWADD ALLOWDELETE\n') (' KEEPMODIFIEDMETADATA COMPONENTS IGNOREPATHS UPDATEIFUNMODIFIED\n') (' BASEDIR VERBOSELEVEL TARGETRELEASE STRICTCOMPONENTS MERGECHANGES\n') (' IDSIGNOREPATHS BACKUPKERNEL BACKUPKERNELDIR BACKUPKERNELSYMBOLFILES') ) } spids: [223] ) ] spids: [223] ) (FuncDef name: nullconfig body: (BraceGroup children: [ (ForEach iter_name: X iter_words: [{(${ VSub_Name CONFIGOPTIONS)}] do_arg_iter: F body: (DoGroup children: [(C {(eval)} {(${ VSub_Name X) (Lit_Other '=') (DQ )})] spids: [254 267] ) spids: [248 252] ) ] spids: [240] ) spids: [235 239] ) (FuncDef name: saveconfig body: (BraceGroup children: [ (ForEach iter_name: X iter_words: [{(${ VSub_Name CONFIGOPTIONS)}] do_arg_iter: F body: (DoGroup children: [ (C {(eval)} {(${ VSub_Name X) (Lit_VarLike '_saved=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (${ VSub_Name X) } ) ] spids: [294 309] ) spids: [288 292] ) ] spids: [280] ) spids: [275 279] ) (FuncDef name: mergeconfig body: (BraceGroup children: [ (ForEach iter_name: X iter_words: [{(${ VSub_Name CONFIGOPTIONS)}] do_arg_iter: F body: (DoGroup children: [ (C {(eval)} {(Lit_VarLike '_=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (${ VSub_Name X) (_saved) } ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name _))} {(Lit_Other ']')}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(eval)} {(${ VSub_Name X) (Lit_Other '=') (EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) (${ VSub_Name X) (_saved) } ) ] spids: [16777215 366] ) ] spids: [16777215 382] ) ] spids: [336 385] ) spids: [330 334] ) ] spids: [322] ) spids: [317 321] ) (FuncDef name: config_KeyPrint body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name KEYPRINT)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KEYPRINT) op: Equal rhs: {($ VSub_Number '$1')} spids: [417] ) ] spids: [417] ) ] spids: [16777215 414] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [421 429] ) ] spids: [398] ) spids: [393 397] ) (FuncDef name: config_WorkDir body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name WORKDIR)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WORKDIR) op: Equal rhs: {($ VSub_Number '$1')} spids: [461] ) ] spids: [461] ) ] spids: [16777215 458] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [465 473] ) ] spids: [442] ) spids: [437 441] ) (FuncDef name: config_ServerName body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name SERVERNAME)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SERVERNAME) op: Equal rhs: {($ VSub_Number '$1')} spids: [505] ) ] spids: [505] ) ] spids: [16777215 502] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [509 517] ) ] spids: [486] ) spids: [481 485] ) (FuncDef name: config_MailTo body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name MAILTO)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MAILTO) op: Equal rhs: {($ VSub_Number '$1')} spids: [549] ) ] spids: [549] ) ] spids: [16777215 546] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [553 561] ) ] spids: [530] ) spids: [525 529] ) (FuncDef name: config_AllowAdd body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name ALLOWADD)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ALLOWADD) op: Equal rhs: {(yes)} spids: [615] ) ] spids: [615] ) ] spids: [603 612 619 16777215] ) (case_arm pat_list: [ {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ALLOWADD) op: Equal rhs: {(no)} spids: [631] ) ] spids: [631] ) ] spids: [622 628 635 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [638 639 647 16777215] ) ] spids: [596 600 650] ) ] spids: [16777215 593] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [653 661] ) ] spids: [577] ) spids: [572 576] ) (FuncDef name: config_AllowDelete body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name ALLOWDELETE)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ALLOWDELETE) op: Equal rhs: {(yes)} spids: [712] ) ] spids: [712] ) ] spids: [700 709 716 16777215] ) (case_arm pat_list: [ {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ALLOWDELETE) op: Equal rhs: {(no)} spids: [728] ) ] spids: [728] ) ] spids: [719 725 732 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [735 736 744 16777215] ) ] spids: [693 697 747] ) ] spids: [16777215 690] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [750 758] ) ] spids: [674] ) spids: [669 673] ) (FuncDef name: config_KeepModifiedMetadata body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name KEEPMODIFIEDMETADATA)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KEEPMODIFIEDMETADATA) op: Equal rhs: {(yes)} spids: [815] ) ] spids: [815] ) ] spids: [803 812 819 16777215] ) (case_arm pat_list: [ {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KEEPMODIFIEDMETADATA) op: Equal rhs: {(no)} spids: [831] ) ] spids: [831] ) ] spids: [822 828 835 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [838 839 847 16777215] ) ] spids: [796 800 850] ) ] spids: [16777215 793] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [853 861] ) ] spids: [777] ) spids: [772 776] ) (FuncDef name: config_Components body: (BraceGroup children: [ (ForEach iter_name: C iter_words: [{($ VSub_At '$@')}] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$C'))} {(Lit_Other '=')} {(DQ (src))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} {(/usr/src/COPYRIGHT)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPONENTS) op: Equal rhs: {(DQ (${ VSub_Name COMPONENTS) (' ') (${ VSub_Name C))} spids: [923] ) ] spids: [923] ) ] spids: [16777215 920] ) ] else_action: [(C {(echo)} {(DQ ('src component not installed, skipped'))})] spids: [935 945] ) ] spids: [16777215 906] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPONENTS) op: Equal rhs: {(DQ (${ VSub_Name COMPONENTS) (' ') (${ VSub_Name C))} spids: [951] ) ] spids: [951] ) ] spids: [948 963] ) ] spids: [886 966] ) spids: [882 884] ) ] spids: [874] ) spids: [869 873] ) (FuncDef name: config_IgnorePaths body: (BraceGroup children: [ (ForEach iter_name: C iter_words: [{($ VSub_At '$@')}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IGNOREPATHS) op: Equal rhs: {(DQ (${ VSub_Name IGNOREPATHS) (' ') (${ VSub_Name C))} spids: [994] ) ] spids: [994] ) ] spids: [991 1006] ) spids: [987 989] ) ] spids: [979] ) spids: [974 978] ) (FuncDef name: config_IDSIgnorePaths body: (BraceGroup children: [ (ForEach iter_name: C iter_words: [{($ VSub_At '$@')}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IDSIGNOREPATHS) op: Equal rhs: {(DQ (${ VSub_Name IDSIGNOREPATHS) (' ') (${ VSub_Name C))} spids: [1034] ) ] spids: [1034] ) ] spids: [1031 1046] ) spids: [1027 1029] ) ] spids: [1019] ) spids: [1014 1018] ) (FuncDef name: config_UpdateIfUnmodified body: (BraceGroup children: [ (ForEach iter_name: C iter_words: [{($ VSub_At '$@')}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UPDATEIFUNMODIFIED) op: Equal rhs: {(DQ (${ VSub_Name UPDATEIFUNMODIFIED) (' ') (${ VSub_Name C))} spids: [1077] ) ] spids: [1077] ) ] spids: [1074 1089] ) spids: [1070 1072] ) ] spids: [1062] ) spids: [1057 1061] ) (FuncDef name: config_MergeChanges body: (BraceGroup children: [ (ForEach iter_name: C iter_words: [{($ VSub_At '$@')}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MERGECHANGES) op: Equal rhs: {(DQ (${ VSub_Name MERGECHANGES) (' ') (${ VSub_Name C))} spids: [1120] ) ] spids: [1120] ) ] spids: [1117 1132] ) spids: [1113 1115] ) ] spids: [1105] ) spids: [1100 1104] ) (FuncDef name: config_BaseDir body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name BASEDIR)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASEDIR) op: Equal rhs: {($ VSub_Number '$1')} spids: [1164] ) ] spids: [1164] ) ] spids: [16777215 1161] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1168 1176] ) ] spids: [1145] ) spids: [1140 1144] ) (FuncDef name: config_StrictComponents body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name STRICTCOMPONENTS)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STRICTCOMPONENTS) op: Equal rhs: {(yes)} spids: [1233] ) ] spids: [1233] ) ] spids: [1221 1230 1237 16777215] ) (case_arm pat_list: [ {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STRICTCOMPONENTS) op: Equal rhs: {(no)} spids: [1249] ) ] spids: [1249] ) ] spids: [1240 1246 1253 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1256 1257 1265 16777215] ) ] spids: [1214 1218 1268] ) ] spids: [16777215 1211] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1271 1279] ) ] spids: [1195] ) spids: [1190 1194] ) (FuncDef name: config_TargetRelease body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name TARGETRELEASE)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETRELEASE) op: Equal rhs: {($ VSub_Number '$1')} spids: [1311] ) ] spids: [1311] ) ] spids: [16777215 1308] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1315 1323] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(${ VSub_Name TARGETRELEASE)}) (C {(grep)} {(-qE)} {(SQ <'^[0-9.]+$'>)}) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETRELEASE) op: Equal rhs: {(DQ (${ VSub_Name TARGETRELEASE) (-RELEASE))} spids: [1348] ) ] spids: [1348] ) ] spids: [16777215 1345] ) ] spids: [16777215 1357] ) ] spids: [1292] ) spids: [1287 1291] ) (FuncDef name: config_VerboseLevel body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name VERBOSELEVEL)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Dd) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Bb) (Lit_Other ']') (Lit_Other '[') (Uu) (Lit_Other ']') (Lit_Other '[') (Gg) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERBOSELEVEL) op: Equal rhs: {(debug)} spids: [1414] ) ] spids: [1414] ) ] spids: [1396 1411 1418 16777215] ) (case_arm pat_list: [ {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') (Lit_Other '[') (Tt) (Lit_Other ']') (Lit_Other '[') (Aa) (Lit_Other ']') (Lit_Other '[') (Tt) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERBOSELEVEL) op: Equal rhs: {(nostats)} spids: [1445] ) ] spids: [1445] ) ] spids: [1421 1442 1449 16777215] ) (case_arm pat_list: [ {(Lit_Other '[') (Ss) (Lit_Other ']') (Lit_Other '[') (Tt) (Lit_Other ']') (Lit_Other '[') (Aa) (Lit_Other ']') (Lit_Other '[') (Tt) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERBOSELEVEL) op: Equal rhs: {(stats)} spids: [1470] ) ] spids: [1470] ) ] spids: [1452 1467 1474 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1477 1478 1486 16777215] ) ] spids: [1389 1393 1489] ) ] spids: [16777215 1386] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1492 1500] ) ] spids: [1370] ) spids: [1365 1369] ) (FuncDef name: config_BackupKernel body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name BACKUPKERNEL)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUPKERNEL) op: Equal rhs: {(yes)} spids: [1548] ) ] spids: [1548] ) ] spids: [1536 1545 1552 16777215] ) (case_arm pat_list: [ {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUPKERNEL) op: Equal rhs: {(no)} spids: [1564] ) ] spids: [1564] ) ] spids: [1555 1561 1568 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1571 1572 1580 16777215] ) ] spids: [1529 1533 1583] ) ] spids: [16777215 1526] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1586 1594] ) ] spids: [1510] ) spids: [1505 1509] ) (FuncDef name: config_BackupKernelDir body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name BACKUPKERNELDIR)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('BackupKernelDir set to empty dir'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 1636] ) ] spids: [16777215 1651] ) (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [ {(/)} {(/bin)} {(/boot)} {(/etc)} {(/lib)} {(/libexec)} {(/sbin)} {(/usr)} {(/var)} ] action: [ (C {(echo)} {(DQ ('BackupKernelDir set to invalid path ') ($ VSub_Number '$1'))} ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [1674 1691 1707 16777215] ) (case_arm pat_list: [{(/) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUPKERNELDIR) op: Equal rhs: {($ VSub_Number '$1')} spids: [1715] ) ] spids: [1715] ) ] spids: [1710 1712 1719 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} { (DQ ('BackupKernelDir (') ($ VSub_Number '$1') (') is not an absolute path') ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [1722 1723 1740 16777215] ) ] spids: [1667 1671 1743] ) ] spids: [16777215 1620] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1746 1754] ) ] spids: [1604] ) spids: [1599 1603] ) (FuncDef name: config_BackupKernelSymbolFiles body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name BACKUPKERNELSYMBOLFILES)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUPKERNELSYMBOLFILES) op: Equal rhs: {(yes)} spids: [1802] ) ] spids: [1802] ) ] spids: [1790 1799 1806 16777215] ) (case_arm pat_list: [ {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUPKERNELSYMBOLFILES) op: Equal rhs: {(no)} spids: [1818] ) ] spids: [1818] ) ] spids: [1809 1815 1822 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1825 1826 1834 16777215] ) ] spids: [1783 1787 1837] ) ] spids: [16777215 1780] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [1840 1848] ) ] spids: [1764] ) spids: [1759 1763] ) (FuncDef name: configline body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [16777215 1877] ) ] spids: [16777215 1883] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPT) op: Equal rhs: {($ VSub_Number '$1')} spids: [1887] ) ] spids: [1887] ) (C {(shift)}) (C {(config_) (${ VSub_Name OPT)} {($ VSub_At '$@')}) ] spids: [1861] ) spids: [1856 1860] ) (FuncDef name: init_params body: (BraceGroup children: [ (C {(nullconfig)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CONFFILE) op:Equal rhs:{(DQ )} spids:[1934])] spids: [1934] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:COMMANDS) op:Equal rhs:{(DQ )} spids:[1944])] spids: [1944] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:FORCEFETCH) op:Equal rhs:{(0)} spids:[1954])] spids: [1954] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NOTTYOK) op:Equal rhs:{(0)} spids:[1963])] spids: [1963] ) ] spids: [1919] ) spids: [1914 1918] ) (FuncDef name: parse_cmdline body: (BraceGroup children: [ (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(-f)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)] spids: [16777215 2026] ) ] spids: [16777215 2031] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ (${ VSub_Name CONFFILE))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)] spids: [16777215 2051] ) ] spids: [16777215 2056] ) (Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONFFILE) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [2062] ) ] spids: [2062] ) ] spids: [2009 2010 2068 16777215] ) (case_arm pat_list: [{(-F)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FORCEFETCH) op: Equal rhs: {(1)} spids: [2075] ) ] spids: [2075] ) ] spids: [2071 2072 2079 16777215] ) (case_arm pat_list: [{(--not-running-from-cron)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NOTTYOK) op: Equal rhs: {(1)} spids: [2086] ) ] spids: [2086] ) ] spids: [2082 2083 2090 16777215] ) (case_arm pat_list: [{(--currently-running)}] action: [ (Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (C {(export)} {(Lit_VarLike 'UNAME_r=') (DQ ($ VSub_Number '$1'))}) ] spids: [2093 2094 2108 16777215] ) (case_arm pat_list: [{(-b)}] action: [ (Sentence child: (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)] spids: [16777215 2133] ) ] spids: [16777215 2138] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (AndOr ops: [Op_DPipe] children: [(C {(config_BaseDir)} {($ VSub_Number '$1')}) (C {(usage)})] ) ] spids: [2116 2117 2153 16777215] ) (case_arm pat_list: [{(-d)}] action: [ (Sentence child: (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)] spids: [16777215 2173] ) ] spids: [16777215 2178] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (AndOr ops: [Op_DPipe] children: [(C {(config_WorkDir)} {($ VSub_Number '$1')}) (C {(usage)})] ) ] spids: [2156 2157 2193 16777215] ) (case_arm pat_list: [{(-k)}] action: [ (Sentence child: (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)] spids: [16777215 2213] ) ] spids: [16777215 2218] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (AndOr ops: [Op_DPipe] children: [(C {(config_KeyPrint)} {($ VSub_Number '$1')}) (C {(usage)})] ) ] spids: [2196 2197 2233 16777215] ) (case_arm pat_list: [{(-s)}] action: [ (Sentence child: (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)] spids: [16777215 2253] ) ] spids: [16777215 2258] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (AndOr ops: [Op_DPipe] children: [(C {(config_ServerName)} {($ VSub_Number '$1')}) (C {(usage)})] ) ] spids: [2236 2237 2273 16777215] ) (case_arm pat_list: [{(-r)}] action: [ (Sentence child: (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)] spids: [16777215 2293] ) ] spids: [16777215 2298] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (AndOr ops: [Op_DPipe] children: [ (C {(config_TargetRelease)} {($ VSub_Number '$1')}) (C {(usage)}) ] ) ] spids: [2276 2277 2313 16777215] ) (case_arm pat_list: [{(-t)}] action: [ (Sentence child: (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)] spids: [16777215 2333] ) ] spids: [16777215 2338] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (AndOr ops: [Op_DPipe] children: [(C {(config_MailTo)} {($ VSub_Number '$1')}) (C {(usage)})] ) ] spids: [2316 2317 2353 16777215] ) (case_arm pat_list: [{(-v)}] action: [ (Sentence child: (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(Sentence child:(C {(usage)}) terminator:<Op_Semi ';'>)] spids: [16777215 2373] ) ] spids: [16777215 2378] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (AndOr ops: [Op_DPipe] children: [ (C {(config_VerboseLevel)} {($ VSub_Number '$1')}) (C {(usage)}) ] ) ] spids: [2356 2357 2393 16777215] ) (case_arm pat_list: [{(--debug)}] action: [ (AndOr ops: [Op_DPipe] children: [(C {(config_VerboseLevel)} {(debug)}) (C {(usage)})] ) ] spids: [2401 2402 2414 16777215] ) (case_arm pat_list: [{(--no-stats)}] action: [ (AndOr ops: [Op_DPipe] children: [(C {(config_VerboseLevel)} {(nostats)}) (C {(usage)})] ) ] spids: [2417 2418 2430 16777215] ) (case_arm pat_list: [{(cron)} {(fetch)} {(upgrade)} {(install)} {(rollback)} {(IDS)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMMANDS) op: Equal rhs: {(DQ (${ VSub_Name COMMANDS) (' ') ($ VSub_Number '$1'))} spids: [2462] ) ] spids: [2462] ) ] spids: [2438 2459 2472 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(usage)})] spids: [2480 2481 2487 16777215] ) ] spids: [1996 2002 2490] ) (C {(shift)}) ] spids: [1993 2496] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name COMMANDS))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(usage)})] spids: [16777215 2519] ) ] spids: [16777215 2525] ) ] spids: [1977] ) spids: [1972 1976] ) (FuncDef name: parse_conffile body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ (${ VSub_Name CONFFILE))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(KW_Bang '!')} {(-r)} {(DQ (${ VSub_Name CONFFILE))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(DQ ('File does not exist '))}) (C {(echo)} {(-n)} {(DQ ('or is not readable: '))}) (C {(echo)} {(${ VSub_Name CONFFILE)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 2582] ) ] spids: [16777215 2615] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name CONFFILE))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONFFILE) op: Equal rhs: {(DQ (/etc/freebsd-update.conf))} spids: [2649] ) ] spids: [2649] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-r)} {(DQ (${ VSub_Name CONFFILE))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [16777215 2672] ) ] spids: [16777215 2678] ) ] spids: [16777215 2646] ) ] spids: [16777215 2681] ) (C {(saveconfig)}) (C {(nullconfig)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:L) op:Equal rhs:{(0)} spids:[2708])] spids: [2708] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(LINE)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:L) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$L')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2723 2730] ) } spids: [2722] ) ] spids: [2722] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LINEX) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name LINE))}) (C {(cut)} {(-f)} {(1)} {(-d)} {(SQ <'#'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [2734 2756] ) } spids: [2733] ) ] spids: [2733] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [(C {(configline)} {(${ VSub_Name LINEX)})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('Error processing configuration file, line ') ($ VSub_Name '$L') (':') ) } ) (C {(echo)} {(DQ ('==> ') (${ VSub_Name LINE))}) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 2770] ) ] spids: [16777215 2797] ) ] spids: [2719 2800] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(${ VSub_Name CONFFILE)})] ) (C {(mergeconfig)}) ] spids: [2538] ) spids: [2533 2537] ) (FuncDef name: default_params body: (BraceGroup children: [ (C {(saveconfig)}) (C {(nullconfig)}) (C {(config_WorkDir)} {(/var/db/freebsd-update)}) (C {(config_MailTo)} {(root)}) (C {(config_AllowAdd)} {(yes)}) (C {(config_AllowDelete)} {(yes)}) (C {(config_KeepModifiedMetadata)} {(yes)}) (C {(config_BaseDir)} {(/)}) (C {(config_VerboseLevel)} {(stats)}) (C {(config_StrictComponents)} {(no)}) (C {(config_BackupKernel)} {(yes)}) (C {(config_BackupKernelDir)} {(/boot/kernel.old)}) (C {(config_BackupKernelSymbolFiles)} {(no)}) (C {(mergeconfig)}) ] spids: [2831] ) spids: [2826 2830] ) (FuncDef name: fetch_setup_verboselevel body: (BraceGroup children: [ (Case to_match: {(${ VSub_Name VERBOSELEVEL)} arms: [ (case_arm pat_list: [{(debug)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:QUIETREDIR) op: Equal rhs: {(DQ (/dev/stderr))} spids: [2938] ) ] spids: [2938] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:QUIETFLAG) op: Equal rhs: {(DQ (' '))} spids: [2944] ) ] spids: [2944] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATSREDIR) op: Equal rhs: {(DQ (/dev/stderr))} spids: [2950] ) ] spids: [2950] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DDSTATS) op: Equal rhs: {(DQ (..))} spids: [2956] ) ] spids: [2956] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XARGST) op: Equal rhs: {(DQ (-t))} spids: [2962] ) ] spids: [2962] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NDEBUG) op: Equal rhs: {(DQ (' '))} spids: [2968] ) ] spids: [2968] ) ] spids: [2934 2935 2974 16777215] ) (case_arm pat_list: [{(nostats)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:QUIETREDIR) op: Equal rhs: {(DQ )} spids: [2981] ) ] spids: [2981] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:QUIETFLAG) op: Equal rhs: {(DQ )} spids: [2986] ) ] spids: [2986] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATSREDIR) op: Equal rhs: {(DQ (/dev/null))} spids: [2991] ) ] spids: [2991] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DDSTATS) op: Equal rhs: {(DQ (..))} spids: [2997] ) ] spids: [2997] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XARGST) op: Equal rhs: {(DQ )} spids: [3003] ) ] spids: [3003] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NDEBUG) op: Equal rhs: {(DQ )} spids: [3008] ) ] spids: [3008] ) ] spids: [2977 2978 3013 16777215] ) (case_arm pat_list: [{(stats)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:QUIETREDIR) op: Equal rhs: {(DQ (/dev/null))} spids: [3020] ) ] spids: [3020] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:QUIETFLAG) op: Equal rhs: {(DQ (-q))} spids: [3026] ) ] spids: [3026] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATSREDIR) op: Equal rhs: {(DQ (/dev/stdout))} spids: [3032] ) ] spids: [3032] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DDSTATS) op: Equal rhs: {(DQ )} spids: [3038] ) ] spids: [3038] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XARGST) op: Equal rhs: {(DQ )} spids: [3043] ) ] spids: [3043] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NDEBUG) op: Equal rhs: {(DQ (-n))} spids: [3048] ) ] spids: [3048] ) ] spids: [3016 3017 3054 16777215] ) ] spids: [2925 2931 3057] ) ] spids: [2922] ) spids: [2917 2921] ) (FuncDef name: fetchupgrade_check_params body: (BraceGroup children: [ (C {(export)} {(Lit_VarLike 'HTTP_USER_AGENT=') (DQ ('freebsd-update (') (${ VSub_Name COMMAND) (', ') (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-r)})]) left_token: <Left_Backtick '`'> spids: [3097 3101] ) (')') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_SERVERNAME_z) op: Equal rhs: {(DQ ('SERVERNAME must be given via command line or configuration file.'))} spids: [3107] ) ] spids: [3107] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_KEYPRINT_z) op: Equal rhs: {(DQ ('Key must be given via -k option or configuration file.'))} spids: [3114] ) ] spids: [3114] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_KEYPRINT_bad) op: Equal rhs: {(DQ ('Invalid key fingerprint: '))} spids: [3120] ) ] spids: [3120] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_WORKDIR_bad) op: Equal rhs: {(DQ ('Directory does not exist or is not writable: '))} spids: [3126] ) ] spids: [3126] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_WORKDIR_bad2) op: Equal rhs: {(DQ ('Directory is not on a persistent filesystem: '))} spids: [3132] ) ] spids: [3132] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name SERVERNAME))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [3162 3166] ) (': ') ) } ) (C {(echo)} {(DQ (${ VSub_Name _SERVERNAME_z))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 3154] ) ] spids: [16777215 3185] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name KEYPRINT))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [3211 3215] ) (': ') ) } ) (C {(echo)} {(DQ (${ VSub_Name _KEYPRINT_z))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 3203] ) ] spids: [16777215 3234] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name KEYPRINT))}) (C {(grep)} {(-qE)} {(DQ ('^[0-9a-f]{64}') (Lit_Other '$'))}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [3269 3273] ) (': ') ) } ) (C {(echo)} {(-n)} {(DQ (${ VSub_Name _KEYPRINT_bad))}) (C {(echo)} {(${ VSub_Name KEYPRINT)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 3261] ) ] spids: [16777215 3301] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name WORKDIR))} {(-a)} {(-w)} {(DQ (${ VSub_Name WORKDIR))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [3339 3343] ) (': ') ) } ) (C {(echo)} {(-n)} {(DQ (${ VSub_Name _WORKDIR_bad))}) (C {(echo)} {(${ VSub_Name WORKDIR)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 3331] ) ] spids: [16777215 3371] ) (Case to_match: { (CommandSubPart command_list: (CommandList children:[(C {(df)} {(-T)} {(${ VSub_Name WORKDIR)})]) left_token: <Left_Backtick '`'> spids: [3376 3384] ) } arms: [ (case_arm pat_list: [ {(Lit_Other '*') (/dev/md) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} {(Lit_Other '*') (tmpfs) (Lit_Other '*')} ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [3408 3412] ) (': ') ) } ) (C {(echo)} {(-n)} {(DQ (${ VSub_Name _WORKDIR_bad2))}) (C {(echo)} {(${ VSub_Name WORKDIR)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [3388 3400 3440 16777215] ) ] spids: [3374 3386 3443] ) (C {(chmod)} {(700)} {(${ VSub_Name WORKDIR)}) (AndOr ops: [Op_DPipe] children: [ (C {(cd)} {(${ VSub_Name WORKDIR)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RELNUM) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(uname)} {(-r)}) (C {(sed)} {(-E)} {(SQ <'s,-p[0-9]+,,'>)}) (C {(sed)} {(-E)} {(SQ <'s,-SECURITY,-RELEASE,'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [3486 3512] ) } spids: [3485] ) ] spids: [3485] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARCH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-m)})]) left_token: <Left_Backtick '`'> spids: [3516 3520] ) } spids: [3515] ) ] spids: [3515] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FETCHDIR) op: Equal rhs: {(${ VSub_Name RELNUM) (/) (${ VSub_Name ARCH)} spids: [3523] ) ] spids: [3523] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PATCHDIR) op: Equal rhs: {(${ VSub_Name RELNUM) (/) (${ VSub_Name ARCH) (/bp)} spids: [3533] ) ] spids: [3533] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTFILE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(sysctl)} {(-n)} {(kern.bootfile)})] ) left_token: <Left_Backtick '`'> spids: [3550 3556] ) } spids: [3549] ) ] spids: [3549] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KERNELDIR) op: Equal rhs: { (BracedVarSub token: <VSub_Name BOOTFILE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) (kernel)}) spids: [3560 3565] ) } spids: [3559] ) ] spids: [3559] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-d)} {(${ VSub_Name KERNELDIR)} {(Lit_Other ']')}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Cannot identify running kernel'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 3583] ) ] spids: [16777215 3598] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KERNCONF) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-i)})]) left_token: <Left_Backtick '`'> spids: [3635 3639] ) } spids: [3634] ) ] spids: [3634] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name KERNCONF)} {(Lit_Other '=')} {(DQ (SMP-GENERIC))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KERNCONF) op: Equal rhs: {(SMP)} spids: [3662] ) ] spids: [3662] ) ] spids: [16777215 3659] ) ] spids: [16777215 3666] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(${ VSub_Name KERNCONF)} {(Lit_Other '=')} {(DQ (GENERIC))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(${ VSub_Name ARCH)} {(Lit_Other '=')} {(DQ (amd64))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(sysctl)} {(kern.version)}) (C {(grep)} {(-qE)} {(SQ <'/SMP$'>)}) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KERNCONF) op: Equal rhs: {(SMP)} spids: [3725] ) ] spids: [3725] ) ] spids: [16777215 3722] ) ] spids: [16777215 3729] ) ] spids: [16777215 3702] ) ] spids: [16777215 3732] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BSPATCH) op: Equal rhs: {(/usr/bin/bspatch)} spids: [3740] ) ] spids: [3740] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SHA256) op: Equal rhs: {(/sbin/sha256)} spids: [3744] ) ] spids: [3744] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PHTTPGET) op: Equal rhs: {(/usr/libexec/phttpget)} spids: [3748] ) ] spids: [3748] ) (C {(fetch_setup_verboselevel)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BDHASH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(echo)} {(${ VSub_Name BASEDIR)}) (C {(sha256)} {(-q)})] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [3766 3778] ) } spids: [3765] ) ] spids: [3765] ) ] spids: [3085] ) spids: [3080 3084] ) (FuncDef name: fetch_check_params body: (BraceGroup children: [ (C {(fetchupgrade_check_params)}) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name TARGETRELEASE))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [3823 3827] ) (': ') ) } ) (C {(echo)} {(-n)} {(DQ ("-r option is meaningless with 'fetch' command. "))}) (C {(echo)} {(DQ ("(Did you mean 'upgrade' instead?)"))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 3815] ) ] spids: [16777215 3853] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name BDHASH) (-install/kerneldone)} {(-a)} {($ VSub_Name '$FORCEFETCH')} {(-eq)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('You have a partially completed upgrade pending'))}) (C {(echo)} {(DQ ("Run '") ($ VSub_Number '$0') (" install' first."))}) (C {(echo)} {(DQ ("Run '") ($ VSub_Number '$0') (" fetch -F' to proceed anyway."))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 3883] ) ] spids: [16777215 3916] ) ] spids: [3791] ) spids: [3786 3790] ) (FuncDef name: upgrade_check_params body: (BraceGroup children: [ (C {(fetchupgrade_check_params)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NKERNCONF) op: Equal rhs: {(${ VSub_Name KERNCONF)} spids: [3940] ) ] spids: [3940] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_TARGETRELEASE_z) op: Equal rhs: {(DQ ('Release target must be specified via -r option.'))} spids: [3951] ) ] spids: [3951] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name TARGETRELEASE))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [3980 3984] ) (': ') ) } ) (C {(echo)} {(DQ (${ VSub_Name _TARGETRELEASE_z))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 3972] ) ] spids: [16777215 4003] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name TARGETRELEASE))} {(Lit_Other '=')} {(DQ (${ VSub_Name RELNUM))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [4040 4044] ) (': ') ) } ) (C {(echo)} {(DQ ('Cannot upgrade from ') (${ VSub_Name RELNUM) (' to itself'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4032] ) ] spids: [16777215 4065] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name ALLOWADD))} {(Lit_Other '=')} {(DQ (no))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [4100 4104] ) (': ') ) } ) (C {(echo)} {(-n)} { (DQ ('WARNING: ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('AllowAdd no') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' is a bad idea ') ) } ) (C {(echo)} {(DQ ('when upgrading between releases.'))}) (C {(echo)}) ] spids: [16777215 4092] ) ] spids: [16777215 4132] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name ALLOWDELETE))} {(Lit_Other '=')} {(DQ (no))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [4162 4166] ) (': ') ) } ) (C {(echo)} {(-n)} { (DQ ('WARNING: ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('AllowDelete no') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' is a bad idea ') ) } ) (C {(echo)} {(DQ ('when upgrading between releases.'))}) (C {(echo)}) ] spids: [16777215 4154] ) ] spids: [16777215 4194] ) (C {(Lit_Other ':')} { (BracedVarSub token: <VSub_Name EDITOR> suffix_op: (StringUnary op_id:VTest_ColonEquals arg_word:{(SQ </usr/bin/vi>)}) spids: [4204 4210] ) } ) ] spids: [3929] ) spids: [3924 3928] ) (FuncDef name: install_check_params body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children:[(C {(id)} {(-u)})]) left_token: <Left_Backtick '`'> spids: [4237 4241] ) } {(KW_Bang '!') (Lit_Other '=')} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('You must be root to run this.'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4251] ) ] spids: [16777215 4266] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [(C {(sysctl)} {(-n)} {(kern.securelevel)})] ) left_token: <Left_Backtick '`'> spids: [4278 4284] ) } {(-gt)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Updates cannot be installed when the system securelevel'))}) (C {(echo)} {(DQ ('is greater than zero.'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4293] ) ] spids: [16777215 4315] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_WORKDIR_bad) op: Equal rhs: {(DQ ('Directory does not exist or is not writable: '))} spids: [4323] ) ] spids: [4323] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name WORKDIR))} {(-a)} {(-w)} {(DQ (${ VSub_Name WORKDIR))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [4364 4368] ) (': ') ) } ) (C {(echo)} {(-n)} {(DQ (${ VSub_Name _WORKDIR_bad))}) (C {(echo)} {(${ VSub_Name WORKDIR)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4356] ) ] spids: [16777215 4396] ) (AndOr ops: [Op_DPipe] children: [ (C {(cd)} {(${ VSub_Name WORKDIR)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BDHASH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(echo)} {(${ VSub_Name BASEDIR)}) (C {(sha256)} {(-q)})] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [4418 4430] ) } spids: [4417] ) ] spids: [4417] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-L)} {(${ VSub_Name BDHASH) (-install)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('No updates are available to install.'))}) (C {(echo)} {(DQ ("Run '") ($ VSub_Number '$0') (" fetch' first."))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4454] ) ] spids: [16777215 4478] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name BDHASH) (-install/INDEX-OLD)} {(Lit_Other ']')} ) ] negated: T ) (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name BDHASH) (-install/INDEX-NEW)} {(Lit_Other ']')} ) ] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Update manifest is corrupt -- this should never happen.'))}) (C {(echo)} {(DQ ("Re-run '") ($ VSub_Number '$0') (" fetch'."))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4513] ) ] spids: [16777215 4537] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTFILE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(sysctl)} {(-n)} {(kern.bootfile)})] ) left_token: <Left_Backtick '`'> spids: [4546 4552] ) } spids: [4545] ) ] spids: [4545] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KERNELDIR) op: Equal rhs: { (BracedVarSub token: <VSub_Name BOOTFILE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) (kernel)}) spids: [4556 4561] ) } spids: [4555] ) ] spids: [4555] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-d)} {(${ VSub_Name KERNELDIR)} {(Lit_Other ']')}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Cannot identify running kernel'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4579] ) ] spids: [16777215 4594] ) ] spids: [4226] ) spids: [4221 4225] ) (FuncDef name: rollback_check_params body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children:[(C {(id)} {(-u)})]) left_token: <Left_Backtick '`'> spids: [4621 4625] ) } {(KW_Bang '!') (Lit_Other '=')} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('You must be root to run this.'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4635] ) ] spids: [16777215 4650] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_WORKDIR_bad) op: Equal rhs: {(DQ ('Directory does not exist or is not writable: '))} spids: [4658] ) ] spids: [4658] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name WORKDIR))} {(-a)} {(-w)} {(DQ (${ VSub_Name WORKDIR))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [4699 4703] ) (': ') ) } ) (C {(echo)} {(-n)} {(DQ (${ VSub_Name _WORKDIR_bad))}) (C {(echo)} {(${ VSub_Name WORKDIR)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4691] ) ] spids: [16777215 4731] ) (AndOr ops: [Op_DPipe] children: [ (C {(cd)} {(${ VSub_Name WORKDIR)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BDHASH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(echo)} {(${ VSub_Name BASEDIR)}) (C {(sha256)} {(-q)})] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [4753 4765] ) } spids: [4752] ) ] spids: [4752] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-L)} {(${ VSub_Name BDHASH) (-rollback)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('No rollback directory found.'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4789] ) ] spids: [16777215 4804] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name BDHASH) (-rollback/INDEX-OLD)} {(Lit_Other ']')} ) ] negated: T ) (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name BDHASH) (-rollback/INDEX-NEW)} {(Lit_Other ']')} ) ] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Update manifest is corrupt -- this should never happen.'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4839] ) ] spids: [16777215 4854] ) ] spids: [4610] ) spids: [4605 4609] ) (FuncDef name: IDS_check_params body: (BraceGroup children: [ (C {(export)} {(Lit_VarLike 'HTTP_USER_AGENT=') (DQ ('freebsd-update (') (${ VSub_Name COMMAND) (', ') (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-r)})]) left_token: <Left_Backtick '`'> spids: [4897 4901] ) (')') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_SERVERNAME_z) op: Equal rhs: {(DQ ('SERVERNAME must be given via command line or configuration file.'))} spids: [4907] ) ] spids: [4907] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_KEYPRINT_z) op: Equal rhs: {(DQ ('Key must be given via -k option or configuration file.'))} spids: [4914] ) ] spids: [4914] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_KEYPRINT_bad) op: Equal rhs: {(DQ ('Invalid key fingerprint: '))} spids: [4920] ) ] spids: [4920] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_WORKDIR_bad) op: Equal rhs: {(DQ ('Directory does not exist or is not writable: '))} spids: [4926] ) ] spids: [4926] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name SERVERNAME))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [4956 4960] ) (': ') ) } ) (C {(echo)} {(DQ (${ VSub_Name _SERVERNAME_z))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4948] ) ] spids: [16777215 4979] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name KEYPRINT))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [5005 5009] ) (': ') ) } ) (C {(echo)} {(DQ (${ VSub_Name _KEYPRINT_z))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 4997] ) ] spids: [16777215 5028] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name KEYPRINT))}) (C {(grep)} {(-qE)} {(DQ ('^[0-9a-f]{64}') (Lit_Other '$'))}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [5063 5067] ) (': ') ) } ) (C {(echo)} {(-n)} {(DQ (${ VSub_Name _KEYPRINT_bad))}) (C {(echo)} {(${ VSub_Name KEYPRINT)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 5055] ) ] spids: [16777215 5095] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name WORKDIR))} {(-a)} {(-w)} {(DQ (${ VSub_Name WORKDIR))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [5133 5137] ) (': ') ) } ) (C {(echo)} {(-n)} {(DQ (${ VSub_Name _WORKDIR_bad))}) (C {(echo)} {(${ VSub_Name WORKDIR)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 5125] ) ] spids: [16777215 5165] ) (AndOr ops: [Op_DPipe] children: [ (C {(cd)} {(${ VSub_Name WORKDIR)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RELNUM) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(uname)} {(-r)}) (C {(sed)} {(-E)} {(SQ <'s,-p[0-9]+,,'>)}) (C {(sed)} {(-E)} {(SQ <'s,-SECURITY,-RELEASE,'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [5199 5225] ) } spids: [5198] ) ] spids: [5198] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARCH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-m)})]) left_token: <Left_Backtick '`'> spids: [5229 5233] ) } spids: [5228] ) ] spids: [5228] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FETCHDIR) op: Equal rhs: {(${ VSub_Name RELNUM) (/) (${ VSub_Name ARCH)} spids: [5236] ) ] spids: [5236] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PATCHDIR) op: Equal rhs: {(${ VSub_Name RELNUM) (/) (${ VSub_Name ARCH) (/bp)} spids: [5246] ) ] spids: [5246] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTFILE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(sysctl)} {(-n)} {(kern.bootfile)})] ) left_token: <Left_Backtick '`'> spids: [5263 5269] ) } spids: [5262] ) ] spids: [5262] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KERNELDIR) op: Equal rhs: { (BracedVarSub token: <VSub_Name BOOTFILE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) (kernel)}) spids: [5273 5278] ) } spids: [5272] ) ] spids: [5272] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-d)} {(${ VSub_Name KERNELDIR)} {(Lit_Other ']')}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Cannot identify running kernel'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 5296] ) ] spids: [16777215 5311] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KERNCONF) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-i)})]) left_token: <Left_Backtick '`'> spids: [5348 5352] ) } spids: [5347] ) ] spids: [5347] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name KERNCONF)} {(Lit_Other '=')} {(DQ (SMP-GENERIC))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KERNCONF) op: Equal rhs: {(SMP)} spids: [5375] ) ] spids: [5375] ) ] spids: [16777215 5372] ) ] spids: [16777215 5379] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(${ VSub_Name KERNCONF)} {(Lit_Other '=')} {(DQ (GENERIC))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(${ VSub_Name ARCH)} {(Lit_Other '=')} {(DQ (amd64))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(sysctl)} {(kern.version)}) (C {(grep)} {(-qE)} {(SQ <'/SMP$'>)}) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KERNCONF) op: Equal rhs: {(SMP)} spids: [5438] ) ] spids: [5438] ) ] spids: [16777215 5435] ) ] spids: [16777215 5442] ) ] spids: [16777215 5415] ) ] spids: [16777215 5445] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SHA256) op: Equal rhs: {(/sbin/sha256)} spids: [5453] ) ] spids: [5453] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PHTTPGET) op: Equal rhs: {(/usr/libexec/phttpget)} spids: [5457] ) ] spids: [5457] ) (C {(fetch_setup_verboselevel)}) ] spids: [4885] ) spids: [4880 4884] ) (FuncDef name: fetch_pick_server_init body: (BraceGroup children: [ (SimpleCommand words: [{(Lit_Other ':')}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(serverlist_tried)})] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children:[(C {(which)} {(-s)} {(host)})] negated:T) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(Lit_Other ':')}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(serverlist_full)})] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 5545] ) ] spids: [16777215 5560] ) (C {(echo)} {(-n)} {(DQ ('Looking up ') (${ VSub_Name SERVERNAME) (' mirrors... '))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MLIST) op: Equal rhs: {(DQ (_http._tcp.) (${ VSub_Name SERVERNAME))} spids: [5587] ) ] spids: [5587] ) (Pipeline children: [ (C {(host)} {(-t)} {(srv)} {(DQ (${ VSub_Name MLIST))}) (C {(sed)} {(-nE)} {(DQ (s/) (${ VSub_Name MLIST) (' (has SRV record|server selection) //p'))} ) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (2) (Lit_Comma ',') (4)} {(-d)} {(SQ <' '>)}) (C {(sed)} {(-e)} {(SQ <'s/\\.$//'>)}) (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(serverlist_full)})] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(wc)} {(-l)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(serverlist_full)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [5671 5679] ) } {(-eq)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('none found.'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 5688] ) ] spids: [16777215 5703] ) (C {(echo)} { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(wc)} {(-l)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(serverlist_full)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [5712 5720] ) } {(DQ ('mirrors found.'))} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name HTTP_PROXY) (${ VSub_Name http_proxy))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RANDVALUE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(sha256)} {(-qs)} { (DQ (${ VSub_Name HTTP_PROXY) (${ VSub_Name http_proxy)) } ) (C {(tr)} {(-d)} {(SQ <a-f>)}) (C {(cut)} {(-c)} {(1-9)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [5759 5792] ) } spids: [5758] ) ] spids: [5758] ) ] spids: [16777215 5755] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RANDVALUE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(jot)} {(-r)} {(1)} {(0)} {(999999999)})] ) left_token: <Left_Backtick '`'> spids: [5799 5809] ) } spids: [5798] ) ] spids: [5798] ) ] spids: [5795 5812] ) ] spids: [5517] ) spids: [5512 5516] ) (FuncDef name: fetch_pick_server body: (BraceGroup children: [ (Pipeline children: [ (C {(sort)} {(serverlist_tried)}) (SimpleCommand words: [{(comm)} {(-23)} {(serverlist_full)} {(-)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(serverlist)})] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(wc)} {(-l)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(serverlist)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [5859 5867] ) } {(-eq)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('No mirrors remaining, giving up.'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 5876] ) ] spids: [16777215 5891] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRV_PRIORITY) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cut)} {(-f)} {(1)} {(-d)} {(SQ <' '>)} {(serverlist)}) (C {(sort)} {(-n)}) (C {(head)} {(-1)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [5899 5925] ) } spids: [5898] ) ] spids: [5898] ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SRV_WSUM) op:Equal rhs:{(0)} spids:[5932])] spids: [5932] ) terminator: <Op_Semi ';'> ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(X)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Name '$X'))} arms: [ (case_arm pat_list: [ {(${ VSub_Name SRV_PRIORITY) (EscapedLiteralPart token: <Lit_EscapedChar '\\ '> ) (Lit_Other '*') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRV_W) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$X')}) (C {(cut)} {(-f)} {(2)} {(-d)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [5965 5983] ) } spids: [5964] ) ] spids: [5964] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRV_WSUM) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$SRV_WSUM')}) right: (ArithWord w:{($ VSub_Name '$SRV_W')}) ) spids: [5987 5994] ) } spids: [5986] ) ] spids: [5986] ) ] spids: [5956 5961 5997 16777215] ) ] spids: [5947 5953 6000] ) ] spids: [5944 6003] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(serverlist)})] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name SRV_WSUM)} {(-eq)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRV_WSUM) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(-E)} {(DQ ('^') (${ VSub_Name SRV_PRIORITY) (' '))} {(serverlist)} ) (C {(wc)} {(-l)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [6033 6053] ) } spids: [6032] ) ] spids: [6032] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRV_W_ADD) op: Equal rhs: {(1)} spids: [6056] ) ] spids: [6056] ) ] spids: [16777215 6029] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SRV_W_ADD) op:Equal rhs:{(0)} spids:[6063])] spids: [6063] ) ] spids: [6060 6067] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRV_RND) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(${ VSub_Name RANDVALUE)} {(Lit_Other '%')} {(${ VSub_Name SRV_WSUM)} ) ] ) left_token: <Left_Backtick '`'> spids: [6075 6087] ) } spids: [6074] ) ] spids: [6074] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(X)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Name '$X'))} arms: [ (case_arm pat_list: [ {(${ VSub_Name SRV_PRIORITY) (EscapedLiteralPart token: <Lit_EscapedChar '\\ '> ) (Lit_Other '*') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRV_W) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$X')}) (C {(cut)} {(-f)} {(2)} {(-d)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [6128 6146] ) } spids: [6127] ) ] spids: [6127] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRV_W) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$SRV_W')}) right: (ArithWord w:{($ VSub_Name '$SRV_W_ADD')}) ) spids: [6150 6157] ) } spids: [6149] ) ] spids: [6149] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$SRV_RND')} {(-lt)} {($ VSub_Name '$SRV_W')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SERVERNAME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$X')}) (C {(cut)} {(-f)} {(3)} {(-d)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [6177 6195] ) } spids: [6176] ) ] spids: [6176] ) (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name '$X'))}] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(serverlist_tried)} ) ] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 6173] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRV_RND) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$SRV_RND')}) right: (ArithWord w:{($ VSub_Name '$SRV_W')}) ) spids: [6216 6223] ) } spids: [6215] ) ] spids: [6215] ) ] spids: [6212 6226] ) ] spids: [6119 6124 6229 16777215] ) ] spids: [6110 6116 6232] ) ] spids: [6107 6235] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(serverlist)})] ) ] spids: [5825] ) spids: [5820 5824] ) (FuncDef name: fetch_make_patchlist body: (BraceGroup children: [ (Pipeline children: [ (C {(grep)} {(-vE)} { (DQ ('^([0-9a-f]{64})') (Lit_Other '\\') ('|') (Lit_Other '\\') (1) (Lit_Other '$')) } ) (C {(tr)} {(SQ <'|'>)} {(SQ <' '>)}) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(X)} {(Y)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-f)} {(DQ (files/) (${ VSub_Name Y) (.gz))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (files/) (${ VSub_Name X) (.gz))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [16777215 6335] ) ] spids: [16777215 6341] ) (C {(echo)} {(DQ (${ VSub_Name X) ('|') (${ VSub_Name Y))}) ] spids: [6296 6357] ) ) (C {(uniq)}) ] negated: F ) ] spids: [6255] ) spids: [6250 6254] ) (FuncDef name: fetch_progress body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LNC) op:Equal rhs:{(0)} spids:[6377])] spids: [6377] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(x)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LNC) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$LNC')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [6392 6399] ) } spids: [6391] ) ] spids: [6391] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (ArithSubPart anode: (ArithBinary op_id: Arith_Percent left: (ArithWord w:{($ VSub_Name '$LNC')}) right: (ArithWord w:{(Lit_Digits 10)}) ) spids: [6406 6413] ) } {(Lit_Other '=')} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(-n)} {($ VSub_Name '$LNC')})] spids: [16777215 6422] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (ArithSubPart anode: (ArithBinary op_id: Arith_Percent left: (ArithWord w:{($ VSub_Name '$LNC')}) right: (ArithWord w:{(Lit_Digits 2)}) ) spids: [6436 6443] ) } {(Lit_Other '=')} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(-n)} {(.)})] spids: [6432 6452] ) ] spids: [16777215 6462] ) ] spids: [6388 6465] ) ) (C {(echo)} {(-n)} {(DQ (' '))}) ] spids: [6374] ) spids: [6369 6373] ) (FuncDef name: continuep body: (BraceGroup children: [ (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(read)} {(-p)} {(DQ ('Does this look reasonable (y/n)? '))} {(CONTINUE)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(DQ (${ VSub_Name CONTINUE))} arms: [ (case_arm pat_list: [{(y) (Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [6517 6519 6527 16777215] ) (case_arm pat_list: [{(n) (Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [6530 6532 6540 16777215] ) ] spids: [6506 6514 6543] ) ] spids: [6503 6546] ) ) ] spids: [6487] ) spids: [6482 6486] ) (FuncDef name: workdir_init body: (BraceGroup children: [(C {(mkdir)} {(-p)} {(files)}) (C {(touch)} {(tINDEX.present)})] spids: [6559] ) spids: [6554 6558] ) (FuncDef name: fetch_key body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-r)} {(pub.ssl)} {(Lit_Other ']')}) (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [(C {(${ VSub_Name SHA256)} {(-q)} {(pub.ssl)})] ) left_token: <Left_Backtick '`'> spids: [6607 6615] ) } {(Lit_Other '=')} {(${ VSub_Name KEYPRINT)} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 6626] ) ] spids: [16777215 6634] ) (C {(echo)} {(-n)} {(DQ ('Fetching public key from ') (${ VSub_Name SERVERNAME) ('... '))}) (C {(rm)} {(-f)} {(pub.ssl)}) (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [ {(fetch)} {(${ VSub_Name QUIETFLAG)} {(http) (Lit_Other ':') (//) (${ VSub_Name SERVERNAME) (/) (${ VSub_Name FETCHDIR) (/pub.ssl) } ] redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(${ VSub_Name QUIETREDIR)})] ) (C {(true)}) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [(C {(Lit_Other '[')} {(-r)} {(pub.ssl)} {(Lit_Other ']')})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (failed.))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 6701] ) ] spids: [16777215 6716] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [(C {(${ VSub_Name SHA256)} {(-q)} {(pub.ssl)})] ) left_token: <Left_Backtick '`'> spids: [6725 6733] ) } {(Lit_Other '=')} {(${ VSub_Name KEYPRINT)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('key has incorrect hash.'))}) (C {(rm)} {(-f)} {(pub.ssl)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 6744] ) ] spids: [16777215 6766] ) (C {(echo)} {(DQ (done.))}) ] spids: [6590] ) spids: [6585 6589] ) (FuncDef name: fetch_tag body: (BraceGroup children: [ (C {(echo)} {(-n)} {(DQ ('Fetching metadata signature '))}) (C {(echo)} {(${ VSub_Name NDEBUG)} {(DQ ('for ') (${ VSub_Name RELNUM) (' from ') (${ VSub_Name SERVERNAME) ('... '))} ) (C {(rm)} {(-f)} {(latest.ssl)}) (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [ {(fetch)} {(${ VSub_Name QUIETFLAG)} {(http) (Lit_Other ':') (//) (${ VSub_Name SERVERNAME) (/) (${ VSub_Name FETCHDIR) (/latest.ssl) } ] redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(${ VSub_Name QUIETREDIR)})] ) (C {(true)}) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [(C {(Lit_Other '[')} {(-r)} {(latest.ssl)} {(Lit_Other ']')})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (failed.))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 6867] ) ] spids: [16777215 6882] ) (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(openssl)} {(rsautl)} {(-pubin)} {(-inkey)} {(pub.ssl)} {(-verify)}] redirects: [ (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(latest.ssl)}) (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(tag.new)}) (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(${ VSub_Name QUIETREDIR)} ) ] ) (C {(true)}) ] ) (C {(rm)} {(latest.ssl)}) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (Pipeline children: [ (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(wc)} {(-l)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(tag.new)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [6930 6938] ) } {(Lit_Other '=')} {(1)} {(Lit_Other ']')} ) ] negated: T ) (Pipeline children: [ (C {(grep)} {(-qE)} { (DQ ('^freebsd-update') (Lit_Other '\\') ('|') (${ VSub_Name ARCH) (Lit_Other '\\') ('|') (${ VSub_Name RELNUM) (Lit_Other '\\') ('|[0-9]+') (Lit_Other '\\') ('|[0-9a-f]{64}') (Lit_Other '\\') ('|[0-9]{10}') ) } {(tag.new)} ) ] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('invalid signature.'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 6982] ) ] spids: [16777215 6997] ) (C {(echo)} {(DQ (done.))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RELPATCHNUM) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(cut)} {(-f)} {(4)} {(-d)} {(SQ <'|'>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(tag.new)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [7010 7026] ) } spids: [7009] ) ] spids: [7009] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TINDEXHASH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(cut)} {(-f)} {(5)} {(-d)} {(SQ <'|'>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(tag.new)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [7030 7046] ) } spids: [7029] ) ] spids: [7029] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EOLTIME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(cut)} {(-f)} {(6)} {(-d)} {(SQ <'|'>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(tag.new)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [7050 7066] ) } spids: [7049] ) ] spids: [7049] ) ] spids: [6786] ) spids: [6781 6785] ) (FuncDef name: fetch_tagsanity body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RELPX) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(uname)} {(-r)}) (C {(sed)} {(-E)} {(SQ <'s,.*-,,'>)})] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [7090 7104] ) } spids: [7089] ) ] spids: [7089] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(${ VSub_Name RELPX)}) (C {(grep)} {(-qE)} {(SQ <'^p[0-9]+$'>)}) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RELPX) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(${ VSub_Name RELPX)}) (C {(cut)} {(-c)} {(2-)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [7130 7144] ) } spids: [7129] ) ] spids: [7129] ) ] spids: [16777215 7126] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RELPX) op:Equal rhs:{(0)} spids:[7150])] spids: [7150] ) ] spids: [7147 7154] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name RELPATCHNUM))} {(-lt)} {(DQ (${ VSub_Name RELPX))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)}) (C {(echo)} {(-n)} { (DQ ('Files on mirror (') (${ VSub_Name RELNUM) (-p) (${ VSub_Name RELPATCHNUM) (')') ) } ) (C {(echo)} {(DQ (' appear older than what'))}) (C {(echo)} { (DQ ('we are currently running (') (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-r)})]) left_token: <Left_Backtick '`'> spids: [7212 7216] ) (')!') ) } ) (C {(echo)} {(DQ ('Cowardly refusing to proceed any further.'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 7178] ) ] spids: [16777215 7233] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-f)} {(tag)} {(Lit_Other ']')}) (C {(grep)} {(-qE)} { (DQ ('^freebsd-update') (Lit_Other '\\') ('|') (${ VSub_Name ARCH) (Lit_Other '\\') ('|') (${ VSub_Name RELNUM) (Lit_Other '\\') ('|[0-9]+') (Lit_Other '\\') ('|[0-9a-f]{64}') (Lit_Other '\\') ('|[0-9]{10}') ) } {(tag)} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LASTRELPATCHNUM) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(cut)} {(-f)} {(4)} {(-d)} {(SQ <'|'>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(tag)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [7297 7313] ) } spids: [7296] ) ] spids: [7296] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name RELPATCHNUM))} {(-lt)} {(DQ (${ VSub_Name LASTRELPATCHNUM))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)}) (C {(echo)} {(-n)} { (DQ ('Files on mirror (') (${ VSub_Name RELNUM) (-p) (${ VSub_Name RELPATCHNUM) (')') ) } ) (C {(echo)} {(DQ (' are older than the'))}) (C {(echo)} {(-n)} {(DQ ('most recently seen updates'))}) (C {(echo)} { (DQ (' (') (${ VSub_Name RELNUM) (-p) (${ VSub_Name LASTRELPATCHNUM) (').') ) } ) (C {(echo)} {(DQ ('Cowardly refusing to proceed any further.'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 7338] ) ] spids: [16777215 7404] ) ] spids: [16777215 7293] ) ] spids: [16777215 7407] ) ] spids: [7082] ) spids: [7077 7081] ) (FuncDef name: fetch_metadata_index body: (BraceGroup children: [ (C {(echo)} {(${ VSub_Name NDEBUG)} {(DQ ('Fetching metadata index... '))}) (C {(rm)} {(-f)} {(${ VSub_Name TINDEXHASH)}) (C {(fetch)} {(${ VSub_Name QUIETFLAG)} {(http) (Lit_Other ':') (//) (${ VSub_Name SERVERNAME) (/) (${ VSub_Name FETCHDIR) (/t/) (${ VSub_Name TINDEXHASH) } ) (SimpleCommand redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(${ VSub_Name QUIETREDIR)})] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name TINDEXHASH)} {(Lit_Other ']')}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (failed.))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 7486] ) ] spids: [16777215 7501] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (C {(${ VSub_Name SHA256)} {(-q)} {(${ VSub_Name TINDEXHASH)}) ] ) left_token: <Left_Backtick '`'> spids: [7508 7518] ) } {(KW_Bang '!') (Lit_Other '=')} {(${ VSub_Name TINDEXHASH)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('update metadata index corrupt.'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 7530] ) ] spids: [16777215 7545] ) (C {(echo)} {(DQ (done.))}) ] spids: [7420] ) spids: [7415 7419] ) (FuncDef name: fetch_metadata_bogus body: (BraceGroup children: [ (C {(echo)}) (C {(echo)} {(DQ ('The update metadata') ($ VSub_Number '$1') (' is correctly signed, but'))} ) (C {(echo)} {(DQ ('failed an integrity check.'))}) (C {(echo)} {(DQ ('Cowardly refusing to proceed any further.'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [7565] ) spids: [7560 7564] ) (FuncDef name: fetch_metadata_index_merge body: (BraceGroup children: [ (Pipeline children: [ (ForEach iter_name: METAFILE iter_words: [{($ VSub_At '$@')}] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(-E)} { (DQ ('^') (${ VSub_Name METAFILE) (Lit_Other '\\') ('|') ) } {(${ VSub_Name TINDEXHASH)} ) (C {(wc)} {(-l)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [7631 7654] ) } {(-ne)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(fetch_metadata_bogus)} {(DQ (' index'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 7665] ) ] spids: [16777215 7680] ) (C {(grep)} {(-E)} {(DQ (${ VSub_Name METAFILE) (Lit_Other '\\') ('|'))} {(${ VSub_Name TINDEXHASH)} ) ] spids: [7624 7701] ) spids: [7620 7622] ) (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(tINDEX.wanted)})] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(tINDEX.present)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {(join)} {(-t)} {(SQ <'|'>)} {(-v)} {(2)} {(tINDEX.wanted)} {(tINDEX.present)}) (SimpleCommand words: [{(sort)} {(-m)} {(-)} {(tINDEX.wanted)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(tINDEX.new)})] ) ] negated: F ) (C {(rm)} {(tINDEX.wanted)}) ] spids: [16777215 7725] ) ] else_action: [(C {(mv)} {(tINDEX.wanted)} {(tINDEX.new)})] spids: [7765 7775] ) ] spids: [7612] ) spids: [7607 7611] ) (FuncDef name: fetch_metadata_index_sanity body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(grep)} {(-qvE)} {(SQ <'^[0-9A-Z.-]+\\|[0-9a-f]{64}$'>)} {(tINDEX.new)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(fetch_metadata_bogus)} {(DQ (' index'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 7813] ) ] spids: [16777215 7828] ) ] spids: [7797] ) spids: [7792 7796] ) (FuncDef name: fetch_metadata_sanity body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:P) op: Equal rhs: {(DQ ('[-+./:=,%@_[~[:alnum:]]'))} spids: [7856] ) ] spids: [7856] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:M) op: Equal rhs: { (DQ ('[0-9]+') (Lit_Other '\\') ('|[0-9]+') (Lit_Other '\\') ('|[0-9]+') (Lit_Other '\\') ('|[0-9]+') ) } spids: [7862] ) ] spids: [7862] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:H) op: Equal rhs: {(DQ ('[0-9a-f]{64}'))} spids: [7874] ) ] spids: [7874] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) ($ VSub_Number '$1') (.gz)} ) ] ) (C {(grep)} {(-qvE)} { (DQ ('^[a-z]+') (Lit_Other '\\') ('|[0-9a-z-]+') (Lit_Other '\\') ('|') (${ VSub_Name P) ('+') (Lit_Other '\\') ('|[fdL-]') (Lit_Other '\\') ('|') ) } ) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (C {(fetch_metadata_bogus)} {(DQ )}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 7921] ) ] spids: [16777215 7935] ) (Pipeline children: [ (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) ($ VSub_Number '$1') (.gz)} ) ] ) (SimpleCommand words: [{(cut)} {(-f)} {(4-)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(sanitycheck.tmp)})] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(grep)} {(-E)} {(SQ <'^f'>)} {(sanitycheck.tmp)}) (C {(grep)} {(-qvE)} { (DQ ('^f') (Lit_Other '\\') ('|') (${ VSub_Name M) (Lit_Other '\\') ('|') (${ VSub_Name H) (Lit_Other '\\') ('|') (${ VSub_Name P) ('*') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ) } ) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (C {(fetch_metadata_bogus)} {(DQ )}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 8019] ) ] spids: [16777215 8033] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(grep)} {(-E)} {(SQ <'^d'>)} {(sanitycheck.tmp)}) (C {(grep)} {(-qvE)} { (DQ ('^d') (Lit_Other '\\') ('|') (${ VSub_Name M) (Lit_Other '\\') ('|') (Lit_Other '\\') ('|') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ) } ) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (C {(fetch_metadata_bogus)} {(DQ )}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 8075] ) ] spids: [16777215 8089] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(grep)} {(-E)} {(SQ <'^L'>)} {(sanitycheck.tmp)}) (C {(grep)} {(-qvE)} { (DQ ('^L') (Lit_Other '\\') ('|') (${ VSub_Name M) (Lit_Other '\\') ('|') (${ VSub_Name P) ('*') (Lit_Other '\\') ('|') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ) } ) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (C {(fetch_metadata_bogus)} {(DQ )}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 8135] ) ] spids: [16777215 8149] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(grep)} {(-E)} {(SQ <'^-'>)} {(sanitycheck.tmp)}) (C {(grep)} {(-qvE)} { (DQ ('^-') (Lit_Other '\\') ('|') (Lit_Other '\\') ('|') (Lit_Other '\\') ('|') (Lit_Other '\\') ('|') (Lit_Other '\\') ('|') (Lit_Other '\\') ('|') ) } ) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (C {(fetch_metadata_bogus)} {(DQ )}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 8193] ) ] spids: [16777215 8207] ) (C {(rm)} {(sanitycheck.tmp)}) ] spids: [7841] ) spids: [7836 7840] ) (FuncDef name: fetch_metadata body: (BraceGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_metadata_index)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_metadata_index_merge)} {($ VSub_At '$@')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_metadata_index_sanity)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Pipeline children: [ (C {(join)} {(-t)} {(SQ <'|'>)} {(-o)} {(1.2) (Lit_Comma ',') (2.2)} {(tINDEX.present)} {(tINDEX.new)} ) (SimpleCommand words: [{(fetch_make_patchlist)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(patchlist)})] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(patchlist)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ ('Fetching ') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(wc)} {(-l)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(patchlist)} ) ] ) (C {(tr)} {(-d)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [8323 8341] ) (' ') ) } ) (C {(echo)} {(${ VSub_Name NDEBUG)} {(DQ ('metadata patches.') (${ VSub_Name DDSTATS))} ) (Pipeline children: [ (SimpleCommand words: [{(tr)} {(SQ <'|'>)} {(SQ <->)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(patchlist)})] ) (C {(lam)} {(-s)} {(DQ (${ VSub_Name FETCHDIR) (/tp/))} {(-)} {(-s)} {(DQ (.gz))}) (SimpleCommand words: [ {(xargs)} {(${ VSub_Name XARGST)} {(${ VSub_Name PHTTPGET)} {(${ VSub_Name SERVERNAME)} ] redirects: [ (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(${ VSub_Name STATSREDIR)} ) ] ) (C {(fetch_progress)}) ] negated: F ) (C {(echo)} {(DQ (done.))}) (C {(echo)} {(-n)} {(DQ ('Applying metadata patches... '))}) (Pipeline children: [ (SimpleCommand words: [{(tr)} {(SQ <'|'>)} {(SQ <' '>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(patchlist)})] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(X)} {(Y)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (${ VSub_Name X) (-) (${ VSub_Name Y) (.gz))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (ControlFlow token:<ControlFlow_Continue continue>) terminator: <Op_Semi ';'> ) ] spids: [16777215 8497] ) ] spids: [16777215 8502] ) (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(${ VSub_Name X) (-) (${ VSub_Name Y) (.gz)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(diff)} ) ] ) (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) (${ VSub_Name X) (.gz)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(diff-OLD)} ) ] ) (Pipeline children: [ (C {(grep)} {(-E)} {(SQ <'^-'>)} {(diff)}) (C {(cut)} {(-c)} {(2-)}) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(read)} {(PREFIX)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(look)} {(DQ (${ VSub_Name PREFIX))} {(diff-OLD)}) ] spids: [8576 8590] ) ) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(diff-rm)} ) ] ) ] negated: F ) (Pipeline children: [ (C {(grep)} {(-E)} {(SQ <'^\\+'>)} {(diff)}) (SimpleCommand words: [{(cut)} {(-c)} {(2-)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(diff-add)} ) ] ) ] negated: F ) (Pipeline children: [ (C {(comm)} {(-23)} {(diff-OLD)} {(diff-rm)}) (SimpleCommand words: [{(sort)} {(-)} {(diff-add)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(diff-NEW)} ) ] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (C {(${ VSub_Name SHA256)} {(-q)} {(diff-NEW)}) ] ) left_token: <Left_Backtick '`'> spids: [8658 8666] ) } {(Lit_Other '=')} {(${ VSub_Name Y)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(diff-NEW)} {(files/) (${ VSub_Name Y)}) (C {(gzip)} {(-n)} {(files/) (${ VSub_Name Y)}) ] spids: [16777215 8677] ) ] else_action: [(C {(mv)} {(diff-NEW)} {(${ VSub_Name Y) (.bad)})] spids: [8700 8713] ) (C {(rm)} {(-f)} {(${ VSub_Name X) (-) (${ VSub_Name Y) (.gz)} {(diff)}) (C {(rm)} {(-f)} {(diff-OLD)} {(diff-NEW)} {(diff-add)} {(diff-rm)}) ] spids: [8472 8745] ) redirects: [ (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(${ VSub_Name QUIETREDIR)} ) ] ) ] negated: F ) (C {(echo)} {(DQ (done.))}) ] spids: [16777215 8310] ) ] spids: [16777215 8760] ) (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(2)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(tINDEX.new)})] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(Y)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (files/) (${ VSub_Name Y) (.gz))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (C {(echo)} {(${ VSub_Name Y)}) terminator: <Op_Semi ';'> ) ] spids: [16777215 8816] ) ] spids: [16777215 8827] ) ] spids: [8794 8830] ) ) (SimpleCommand words: [{(sort)} {(-u)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(filelist)})] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(filelist)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ ('Fetching ') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(wc)} {(-l)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(filelist)} ) ] ) (C {(tr)} {(-d)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [8865 8883] ) (' ') ) } ) (C {(echo)} {(${ VSub_Name NDEBUG)} {(DQ ('metadata files... '))}) (Pipeline children: [ (SimpleCommand words: [ {(lam)} {(-s)} {(DQ (${ VSub_Name FETCHDIR) (/m/))} {(-)} {(-s)} {(DQ (.gz))} ] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (SimpleCommand words: [ {(xargs)} {(${ VSub_Name XARGST)} {(${ VSub_Name PHTTPGET)} {(${ VSub_Name SERVERNAME)} ] redirects: [ (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(${ VSub_Name QUIETREDIR)} ) ] ) ] negated: F ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(Y)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name Y) (.gz)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (failed.))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 8974] ) ] spids: [16777215 8989] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(${ VSub_Name Y) (.gz)} ) ] ) (C {(${ VSub_Name SHA256)} {(-q)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [8996 9016] ) } {(Lit_Other '=')} {(${ VSub_Name Y)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(${ VSub_Name Y) (.gz)} {(files/) (${ VSub_Name Y) (.gz)}) ] spids: [16777215 9027] ) ] else_action: [ (C {(echo)} {(DQ ('metadata is corrupt.'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [9044 9059] ) ] spids: [8955 9062] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (C {(echo)} {(DQ (done.))}) ] spids: [16777215 8856] ) ] spids: [16777215 9076] ) (SimpleCommand words: [{(cut)} {(-f)} {(2)} {(-d)} {(SQ <'|'>)} {(tINDEX.new)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(filelist)})] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(X)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_metadata_sanity)} {(${ VSub_Name X)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [9109 9125] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (Pipeline children: [ (C {(cut)} {(-f)} {(2)} {(-d)} {(SQ <'|'>)} {(tINDEX.present)}) (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(oldfiles)})] ) ] negated: F ) (Pipeline children: [ (C {(cut)} {(-f)} {(2)} {(-d)} {(SQ <'|'>)} {(tINDEX.new)}) (C {(sort)}) (C {(comm)} {(-13)} {(-)} {(oldfiles)}) (C {(lam)} {(-s)} {(DQ (files/))} {(-)} {(-s)} {(DQ (.gz))}) (C {(xargs)} {(rm)} {(-f)}) ] negated: F ) (C {(rm)} {(patchlist)} {(filelist)} {(oldfiles)}) (C {(rm)} {(${ VSub_Name TINDEXHASH)}) (C {(mv)} {(tINDEX.new)} {(tINDEX.present)}) (C {(mv)} {(tag.new)} {(tag)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [8233] ) spids: [8228 8232] ) (FuncDef name: fetch_filter_metadata_components body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:METAHASH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(look)} {(DQ ($ VSub_Number '$1') ('|'))} {(tINDEX.present)}) (C {(cut)} {(-f)} {(2)} {(-d)} {(SQ <'|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [9276 9299] ) } spids: [9275] ) ] spids: [9275] ) (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) (${ VSub_Name METAHASH) (.gz)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.all)} ) ] ) (ForEach iter_name: C iter_words: [{(${ VSub_Name COMPONENTS)}] do_arg_iter: F body: (DoGroup children: [ (C {(look)} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(${ VSub_Name C)}) (C {(tr)} {(SQ </>)} {(SQ <'|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [9342 9360] ) ('|') ) } {($ VSub_Number '$1') (.all)} ) ] spids: [9336 9368] ) redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Number '$1')})] spids: [9330 9334] ) (C {(rm)} {($ VSub_Number '$1') (.all)}) ] spids: [9272] ) spids: [9267 9271] ) (FuncDef name: fetch_filter_metadata body: (BraceGroup children: [ (C {(fetch_filter_metadata_components)} {($ VSub_Number '$1')}) (Pipeline children: [ (C {(cut)} {(-f)} {(3-)} {(-d)} {(SQ <'|'>)} {($ VSub_Number '$1')}) (C {(sed)} {(-e)} {(SQ <'s,/|d|,|d|,'>)}) (C {(sed)} {(-e)} {(SQ <'s,/|-|,|-|,'>)}) (SimpleCommand words: [{(sort)} {(-u)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.tmp)} ) ] ) ] negated: F ) (Pipeline children: [ (ForEach iter_name: X iter_words: [{(${ VSub_Name IGNOREPATHS)}] do_arg_iter: F body: (DoGroup children: [ (C {(grep)} {(-E)} {(DQ ('^') (${ VSub_Name X))} {($ VSub_Number '$1') (.tmp)}) ] spids: [9499 9517] ) spids: [9493 9497] ) (C {(sort)} {(-u)}) (SimpleCommand words: [{(comm)} {(-13)} {(-)} {($ VSub_Number '$1') (.tmp)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Number '$1')})] ) ] negated: F ) (C {(rm)} {($ VSub_Number '$1') (.tmp)}) ] spids: [9405] ) spids: [9400 9404] ) (FuncDef name: fetch_filter_kernel_names body: (BraceGroup children: [ (Pipeline children: [ (C {(grep)} {(Lit_Other '^') (/boot/) ($ VSub_Number '$2')} {($ VSub_Number '$1')}) (C {(sed)} {(-e)} {(DQ ('s,/boot/') ($ VSub_Number '$2') (',') (${ VSub_Name KERNELDIR) (',g'))} ) (SimpleCommand words: [{(sort)} {(-)} {($ VSub_Number '$1')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.tmp)} ) ] ) ] negated: F ) (C {(mv)} {($ VSub_Number '$1') (.tmp)} {($ VSub_Number '$1')}) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-d)} {(/boot/) ($ VSub_Number '$2')} {(Lit_Other ']')}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(grep)} {(-v)} {(Lit_Other '^') (/boot/) ($ VSub_Number '$2')} {($ VSub_Number '$1')} ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.tmp)} ) ] ) (C {(mv)} {($ VSub_Number '$1') (.tmp)} {($ VSub_Number '$1')}) ] spids: [16777215 9645] ) ] spids: [16777215 9672] ) ] spids: [9579] ) spids: [9574 9578] ) (FuncDef name: fetch_inspect_system body: (BraceGroup children: [ (C {(rm)} {(-f)} {(.err)}) (C {(echo)} {(-n)} {(DQ ('Inspecting system... '))}) (Pipeline children: [ (C {(cat)} {($ VSub_Number '$1')} {($ VSub_Number '$3')}) (C {(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(sort)} {(-u)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(filelist)})] ) ] negated: F ) (Pipeline children: [ (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(F)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-e)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (${ VSub_Name F) ('|-||||||'))}) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [16777215 9800] ) ] spids: [16777215 9816] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-r)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ('Cannot read file: ') (${ VSub_Name BASEDIR) (/) (${ VSub_Name F) ) } ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/stderr)} ) ] ) (C {(touch)} {(.err)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 9838] ) ] spids: [16777215 9870] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-L)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(DQ (${ VSub_Name F) ('|L|'))}) (Sentence child: (C {(stat)} {(-n)} {(-f)} {(SQ <'%d-%i|%u|%g|%Mp%Lp|%Of|'>)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(readlink)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)}) terminator: <Op_Semi ';'> ) ] spids: [16777215 9895] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(DQ (${ VSub_Name F) ('|f|'))}) (Sentence child: (C {(stat)} {(-n)} {(-f)} {(SQ <'%d-%i|%u|%g|%Mp%Lp|%Of|'>)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(sha256)} {(-q)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)}) terminator: <Op_Semi ';'> ) ] spids: [9942 9959] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(DQ (${ VSub_Name F) ('|d|'))}) (Sentence child: (C {(stat)} {(-f)} {(SQ <'%d-%i|%u|%g|%Mp%Lp|%Of|'>)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} ) terminator: <Op_Semi ';'> ) ] spids: [10008 10025] ) ] else_action: [ (SimpleCommand words: [ {(echo)} { (DQ ('Unknown file type: ') (${ VSub_Name BASEDIR) (/) (${ VSub_Name F) ) } ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/stderr)} ) ] ) (C {(touch)} {(.err)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [10058 10090] ) ] spids: [9774 10093] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (SimpleCommand words: [{(sort)} {(-k)} {(3) (Lit_Comma ',') (3)} {(-t)} {(SQ <'|'>)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$2') (.tmp)} ) ] ) ] negated: F ) (C {(rm)} {(filelist)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(.err)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [16777215 10143] ) ] spids: [16777215 10151] ) (Pipeline children: [ (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (3)} {(-d)} {(SQ <'|'>)} {($ VSub_Number '$2') (.tmp)} ) (C {(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)}) (C {(sort)} {(-s)} {(-u)} {(-k)} {(2) (Lit_Comma ',') (2)} {(-t)} {(SQ <'|'>)}) (C {(join)} {(-1)} {(2)} {(-2)} {(3)} {(-t)} {(SQ <'|'>)} {(-)} {($ VSub_Number '$2') (.tmp)}) (C {(awk)} {(-F)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\|'>)} {(-v)} {(Lit_VarLike 'OFS=') (EscapedLiteralPart token:<Lit_EscapedChar '\\|'>)} { (SQ <'{\n'> <'\t\t if (($2 == $3) || ($4 == "-"))\n'> <'\t\t\tprint $3,$4,$5,$6,$7,$8,$9,""\n'> <'\t\t else\n'> <'\t\t\tprint $3,$4,$5,$6,$7,$8,$9,$2\n'> <'\t\t}'> ) } ) (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Number '$2')})] ) ] negated: F ) (C {(rm)} {($ VSub_Number '$2') (.tmp)}) (C {(echo)} {(DQ (done.))}) ] spids: [9688] ) spids: [9683 9687] ) (FuncDef name: fetch_filter_mergechanges body: (BraceGroup children: [ (ForEach iter_name: F iter_words: [{($ VSub_Number '$1')} {($ VSub_Number '$2')}] do_arg_iter: F body: (DoGroup children: [ (Pipeline children: [ (ForEach iter_name: X iter_words: [{(${ VSub_Name MERGECHANGES)}] do_arg_iter: F body: (DoGroup children: [ (C {(grep)} {(-E)} {(DQ ('^') (${ VSub_Name X))} {(${ VSub_Name F)}) ] spids: [10344 10363] ) spids: [10338 10342] ) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (2) (Lit_Comma ',') (7)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name F) (-values)} ) ] ) ] negated: F ) ] spids: [10330 10397] ) spids: [10324 10328] ) (Pipeline children: [ (C {(comm)} {(-13)} {($ VSub_Number '$1') (-values)} {($ VSub_Number '$2') (-values)}) (C {(fgrep)} {(SQ <'|f|'>)}) (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$2') (-paths)} ) ] ) ] negated: F ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(X)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Pipeline children: [ (C {(look)} {(DQ (${ VSub_Name X) ('|'))} {($ VSub_Number '$1') (-values)}) (C {(head)} {(-1)}) ] negated: F ) ] spids: [10477 10500] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$2') (-paths)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$3')} ) ] ) (C {(rm)} {($ VSub_Number '$1') (-values)} {($ VSub_Number '$2') (-values)} {($ VSub_Number '$2') (-paths)} ) ] spids: [10312] ) spids: [10307 10311] ) (FuncDef name: fetch_filter_unmodified_notpresent body: (BraceGroup children: [ (Pipeline children: [ (ForEach iter_name: X iter_words: [{(${ VSub_Name UPDATEIFUNMODIFIED)}] do_arg_iter: F body: (DoGroup children: [ (C {(grep)} {(-E)} {(DQ ('^') (${ VSub_Name X))} {($ VSub_Number '$1')}) (C {(grep)} {(-E)} {(DQ ('^') (${ VSub_Name X))} {($ VSub_Number '$3')}) ] spids: [10585 10616] ) spids: [10579 10583] ) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (2) (Lit_Comma ',') (7)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (-values)} ) ] ) ] negated: F ) (Pipeline children: [ (ForEach iter_name: X iter_words: [{(${ VSub_Name UPDATEIFUNMODIFIED)}] do_arg_iter: F body: (DoGroup children: [ (C {(grep)} {(-E)} {(DQ ('^') (${ VSub_Name X))} {($ VSub_Number '$2')}) ] spids: [10664 10681] ) spids: [10658 10662] ) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (2) (Lit_Comma ',') (7)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$2') (-values)} ) ] ) ] negated: F ) (Pipeline children: [ (C {(comm)} {(-13)} {($ VSub_Number '$1') (-values)} {($ VSub_Number '$2') (-values)}) (SimpleCommand words: [{(sort)} {(-t)} {(SQ <'|'>)} {(-k)} {(1) (Lit_Comma ',') (1)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(mlines.tmp)})] ) ] negated: F ) (Pipeline children: [ (C {(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)} {($ VSub_Number '$4')}) (C {(sort)}) (C {(join)} {(-v)} {(2)} {(-t)} {(SQ <'|'>)} {(-)} {(mlines.tmp)}) (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(mlines)})] ) ] negated: F ) (C {(rm)} {($ VSub_Number '$1') (-values)} {($ VSub_Number '$2') (-values)} {(mlines.tmp)}) (Pipeline children: [ (C {(comm)} {(-13)} {($ VSub_Number '$1')} {($ VSub_Number '$2')}) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (2) (Lit_Comma ',') (7)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(fgrep)} {(SQ <'|-|'>)}] redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(mlines)})] ) ] negated: F ) (ForEach iter_name: X iter_words: [{($ VSub_Number '$1')} {($ VSub_Number '$2')} {($ VSub_Number '$3')}] do_arg_iter: F body: (DoGroup children: [ (SimpleCommand words: [ {(sort)} {(-t)} {(SQ <'|'>)} {(-k)} {(1) (Lit_Comma ',') (1)} {(${ VSub_Name X)} ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name X) (.tmp)} ) ] ) (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(mlines)})] ) (C {(sort)}) (C {(join)} {(-v)} {(2)} {(-t)} {(SQ <'|'>)} {(-)} {(${ VSub_Name X) (.tmp)}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name X)} ) ] ) ] negated: F ) (C {(rm)} {(${ VSub_Name X) (.tmp)}) ] spids: [10885 10977] ) spids: [10877 10883] ) (Pipeline children: [ (C {(fgrep)} {(-v)} {(SQ <'|-|'>)} {(mlines)}) (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(modifiedfiles)})] ) ] negated: F ) (C {(rm)} {(mlines)}) ] spids: [10551] ) spids: [10546 10550] ) (FuncDef name: fetch_filter_allowadd body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1) (Lit_Comma ',') (2)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Number '$1')})] ) (C {(fgrep)} {(SQ <'|-'>)}) (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(filesnotpresent)})] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name ALLOWADD)} {(KW_Bang '!') (Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$2')} ) ] ) (C {(join)} {(-v)} {(1)} {(-t)} {(SQ <'|'>)} {(-)} {(filesnotpresent)}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$2') (.tmp)} ) ] ) ] negated: F ) (C {(mv)} {($ VSub_Number '$2') (.tmp)} {($ VSub_Number '$2')}) ] spids: [16777215 11105] ) ] spids: [16777215 11152] ) (Pipeline children: [ (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Number '$1')})] ) (C {(join)} {(-v)} {(1)} {(-t)} {(SQ <'|'>)} {(-)} {(filesnotpresent)}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.tmp)} ) ] ) ] negated: F ) (C {(mv)} {($ VSub_Number '$1') (.tmp)} {($ VSub_Number '$1')}) (C {(rm)} {(filesnotpresent)}) ] spids: [11036] ) spids: [11031 11035] ) (FuncDef name: fetch_filter_allowdelete body: (BraceGroup children: [ (ForEach iter_name: X iter_words: [{($ VSub_Number '$1')} {($ VSub_Number '$2')}] do_arg_iter: F body: (DoGroup children: [ (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1-2)} {(-d)} {(SQ <'|'>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(${ VSub_Name X)} ) ] ) (SimpleCommand words: [{(sort)} {(-u)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name X) (.nodes)} ) ] ) ] negated: F ) ] spids: [11236 11272] ) spids: [11230 11234] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name ALLOWDELETE)} {(KW_Bang '!') (Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(comm)} {(-23)} {($ VSub_Number '$1') (.nodes)} {($ VSub_Number '$2') (.nodes)} ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.badnodes)} ) ] ) ] spids: [16777215 11298] ) ] else_action: [ (SimpleCommand words: [{(Lit_Other ':')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.badnodes)} ) ] ) ] spids: [11317 11328] ) (Pipeline children: [ (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(X)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [(C {(look)} {(DQ (${ VSub_Name X) ('|'))} {($ VSub_Number '$1')})] spids: [11343 11358] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.badnodes)} ) ] ) (SimpleCommand words: [{(comm)} {(-13)} {(-)} {($ VSub_Number '$1')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.tmp)} ) ] ) ] negated: F ) (C {(mv)} {($ VSub_Number '$1') (.tmp)} {($ VSub_Number '$1')}) (C {(rm)} {($ VSub_Number '$1') (.badnodes)} {($ VSub_Number '$1') (.nodes)} {($ VSub_Number '$2') (.nodes)} ) ] spids: [11218] ) spids: [11213 11217] ) (FuncDef name: fetch_filter_modified_metadata body: (BraceGroup children: [ (ForEach iter_name: X iter_words: [{($ VSub_Number '$1')} {($ VSub_Number '$2')}] do_arg_iter: F body: (DoGroup children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1-6)} {(-d)} {(SQ <'|'>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(${ VSub_Name X)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name X) (.metadata)} ) ] ) ] spids: [11437 11466] ) spids: [11431 11435] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name KEEPMODIFIEDMETADATA)} {(Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(comm)} {(-13)} {($ VSub_Number '$1') (.metadata)} {($ VSub_Number '$2') (.metadata)} ] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(keepmeta)})] ) ] spids: [16777215 11491] ) ] else_action: [ (SimpleCommand words: [{(Lit_Other ':')}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(keepmeta)})] ) ] spids: [11509 11519] ) (SimpleCommand words: [{(Lit_Other ':')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$3') (.remove)} ) ] ) (SimpleCommand words: [{(Lit_Other ':')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$3') (.add)} ) ] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(LINE)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NODE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name LINE))}) (C {(cut)} {(-f)} {(1-2)} {(-d)} {(SQ <'|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [11558 11580] ) } spids: [11557] ) ] spids: [11557] ) (SimpleCommand words: [{(look)} {(DQ (${ VSub_Name NODE) ('|'))} {($ VSub_Number '$3')}] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_Number '$3') (.remove)} ) ] ) (Pipeline children: [ (C {(look)} {(DQ (${ VSub_Name NODE) ('|'))} {($ VSub_Number '$3')}) (C {(cut)} {(-f)} {(7-)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(lam)} {(-s)} {(DQ (${ VSub_Name LINE) ('|'))} {(-)}] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_Number '$3') (.add)} ) ] ) ] negated: F ) ] spids: [11554 11648] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(keepmeta)})] ) (Pipeline children: [ (C {(sort)} {($ VSub_Number '$3') (.remove)}) (C {(comm)} {(-13)} {(-)} {($ VSub_Number '$3')}) (SimpleCommand words: [{(sort)} {(-u)} {(-)} {($ VSub_Number '$3') (.add)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$3') (.tmp)} ) ] ) ] negated: F ) (C {(mv)} {($ VSub_Number '$3') (.tmp)} {($ VSub_Number '$3')}) (C {(rm)} {(keepmeta)} {($ VSub_Number '$1') (.metadata)} {($ VSub_Number '$2') (.metadata)} {($ VSub_Number '$3') (.add)} {($ VSub_Number '$3') (.remove)} ) ] spids: [11419] ) spids: [11414 11418] ) (FuncDef name: fetch_filter_uptodate body: (BraceGroup children: [ (SimpleCommand words: [{(comm)} {(-23)} {($ VSub_Number '$1')} {($ VSub_Number '$2')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.tmp)} ) ] ) (SimpleCommand words: [{(comm)} {(-13)} {($ VSub_Number '$1')} {($ VSub_Number '$2')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$2') (.tmp)} ) ] ) (C {(mv)} {($ VSub_Number '$1') (.tmp)} {($ VSub_Number '$1')}) (C {(mv)} {($ VSub_Number '$2') (.tmp)} {($ VSub_Number '$2')}) ] spids: [11733] ) spids: [11728 11732] ) (FuncDef name: fetch_files_premerge body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {($ VSub_Number '$1')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(DQ ('Fetching files from ') (${ VSub_Name OLDRELNUM) (' for merging... '))} ) (Pipeline children: [ (SimpleCommand words: [{(fgrep)} {(SQ <'|f|'>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$1')} ) ] ) (C {(cut)} {(-f)} {(3)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(sort)} {(-u)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(files.wanted)} ) ] ) ] negated: F ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(Y)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (files/) (${ VSub_Name Y) (.gz))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (C {(echo)} {(${ VSub_Name Y)}) terminator: <Op_Semi ';'> ) ] spids: [16777215 11905] ) ] spids: [16777215 11916] ) ] spids: [11883 11919] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files.wanted)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(filelist)} ) ] ) (Pipeline children: [ (SimpleCommand words: [ {(lam)} {(-s)} {(DQ (${ VSub_Name OLDFETCHDIR) (/f/))} {(-)} {(-s)} {(DQ (.gz))} ] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (SimpleCommand words: [ {(xargs)} {(${ VSub_Name XARGST)} {(${ VSub_Name PHTTPGET)} {(${ VSub_Name SERVERNAME)} ] redirects: [ (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(${ VSub_Name QUIETREDIR)} ) ] ) ] negated: F ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(Y)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name Y) (.gz)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (failed.))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 12014] ) ] spids: [16777215 12029] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(${ VSub_Name Y) (.gz)} ) ] ) (C {(${ VSub_Name SHA256)} {(-q)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [12036 12056] ) } {(Lit_Other '=')} {(${ VSub_Name Y)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(${ VSub_Name Y) (.gz)} {(files/) (${ VSub_Name Y) (.gz)}) ] spids: [16777215 12067] ) ] else_action: [ (C {(echo)} {(DQ (${ VSub_Name Y) (' has incorrect hash.'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [12084 12102] ) ] spids: [11995 12105] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (C {(echo)} {(DQ (done.))}) (C {(rm)} {(filelist)} {(files.wanted)}) ] spids: [16777215 11809] ) ] spids: [16777215 12131] ) ] spids: [11791] ) spids: [11786 11790] ) (FuncDef name: fetch_files_prepare body: (BraceGroup children: [ (C {(echo)} {(-n)} {(DQ ('Preparing to download files... '))}) (ForEach iter_name: X iter_words: [{($ VSub_Number '$1')} {($ VSub_Number '$2')} {($ VSub_Number '$3')}] do_arg_iter: F body: (DoGroup children: [ (Pipeline children: [ (SimpleCommand words: [ {(cut)} {(-f)} {(1) (Lit_Comma ',') (2) (Lit_Comma ',') (7)} {(-d)} {(SQ <'|'>)} ] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(${ VSub_Name X)} ) ] ) (C {(fgrep)} {(SQ <'|f|'>)}) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (3)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name X) (.hashes)} ) ] ) ] negated: F ) ] spids: [12184 12248] ) spids: [12176 12182] ) (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(2)} {(-d)} {(SQ <'|'>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$3') (.hashes)} ) ] ) (C {(sort)} {(-u)}) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(HASH)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(files/) (${ VSub_Name HASH) (.gz)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(${ VSub_Name HASH)})] spids: [16777215 12310] ) ] spids: [16777215 12320] ) ] spids: [12290 12323] ) redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(files.wanted)})] ) ] negated: F ) (Pipeline children: [ (C {(comm)} {(-12)} {($ VSub_Number '$1') (.hashes)} {($ VSub_Number '$2') (.hashes)}) (SimpleCommand words: [{(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(unmodified.files)})] ) ] negated: F ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(LINE)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:F) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name LINE))}) (C {(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [12391 12413] ) } spids: [12390] ) ] spids: [12390] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HASH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name LINE))}) (C {(cut)} {(-f)} {(2)} {(-d)} {(SQ <'|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [12417 12439] ) } spids: [12416] ) ] spids: [12416] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(files/) (${ VSub_Name HASH) (.gz)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [16777215 12462] ) ] spids: [16777215 12468] ) (C {(cp)} {(DQ (${ VSub_Name BASEDIR) (/) (${ VSub_Name F))} {(tmpfile)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [(C {(sha256)} {(-q)} {(tmpfile)})] ) left_token: <Left_Backtick '`'> spids: [12495 12501] ) } {(KW_Bang '!') (Lit_Other '=')} {(${ VSub_Name HASH)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)}) (C {(echo)} {(DQ ('File changed while FreeBSD Update running: ') (${ VSub_Name F))} ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 12513] ) ] spids: [16777215 12534] ) (SimpleCommand words: [{(gzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(tmpfile)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(files/) (${ VSub_Name HASH) (.gz)} ) ] ) (C {(rm)} {(tmpfile)}) ] spids: [12387 12564] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$2') (.hashes)} ) ] ) (Pipeline children: [ (C {(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)} {($ VSub_Number '$3') (.hashes)} ) (C {(join)} {(-t)} {(SQ <'|'>)} {(-o)} {(2.2) (Lit_Comma ',') (1.2)} {(-)} {(unmodified.files)} ) (SimpleCommand words: [{(fetch_make_patchlist)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(patchlist)})] ) ] negated: F ) (C {(rm)} {(unmodified.files)} {($ VSub_Number '$1') (.hashes)} {($ VSub_Number '$2') (.hashes)} {($ VSub_Number '$3') (.hashes)} ) (C {(rm)} {($ VSub_Number '$1')}) (C {(echo)} {(DQ (done.))}) ] spids: [12150] ) spids: [12145 12149] ) (FuncDef name: fetch_files body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(patchlist)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ ('Fetching ') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(wc)} {(-l)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(patchlist)} ) ] ) (C {(tr)} {(-d)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [12703 12721] ) (' ') ) } ) (C {(echo)} {(${ VSub_Name NDEBUG)} {(DQ (patches.) (${ VSub_Name DDSTATS))}) (Pipeline children: [ (SimpleCommand words: [{(tr)} {(SQ <'|'>)} {(SQ <->)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(patchlist)})] ) (C {(lam)} {(-s)} {(DQ (${ VSub_Name PATCHDIR) (/))} {(-)}) (SimpleCommand words: [ {(xargs)} {(${ VSub_Name XARGST)} {(${ VSub_Name PHTTPGET)} {(${ VSub_Name SERVERNAME)} ] redirects: [ (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(${ VSub_Name STATSREDIR)} ) ] ) (C {(fetch_progress)}) ] negated: F ) (C {(echo)} {(DQ (done.))}) (C {(echo)} {(-n)} {(DQ ('Applying patches... '))}) (Pipeline children: [ (SimpleCommand words: [{(tr)} {(SQ <'|'>)} {(SQ <' '>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(patchlist)})] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(X)} {(Y)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (${ VSub_Name X) (-) (${ VSub_Name Y))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (ControlFlow token:<ControlFlow_Continue continue>) terminator: <Op_Semi ';'> ) ] spids: [16777215 12870] ) ] spids: [16777215 12875] ) (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) (${ VSub_Name X) (.gz)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(OLD)} ) ] ) (C {(bspatch)} {(OLD)} {(NEW)} {(${ VSub_Name X) (-) (${ VSub_Name Y)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (C {(${ VSub_Name SHA256)} {(-q)} {(NEW)}) ] ) left_token: <Left_Backtick '`'> spids: [12916 12924] ) } {(Lit_Other '=')} {(${ VSub_Name Y)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(NEW)} {(files/) (${ VSub_Name Y)}) (C {(gzip)} {(-n)} {(files/) (${ VSub_Name Y)}) ] spids: [16777215 12935] ) ] spids: [16777215 12958] ) (C {(rm)} {(-f)} {(diff)} {(OLD)} {(NEW)} {(${ VSub_Name X) (-) (${ VSub_Name Y)} ) ] spids: [12846 12980] ) redirects: [ (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(${ VSub_Name QUIETREDIR)} ) ] ) ] negated: F ) (C {(echo)} {(DQ (done.))}) ] spids: [16777215 12694] ) ] spids: [16777215 12995] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(Y)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (files/) (${ VSub_Name Y) (.gz))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (C {(echo)} {(${ VSub_Name Y)}) terminator: <Op_Semi ';'> ) ] spids: [16777215 13032] ) ] spids: [16777215 13043] ) ] spids: [13010 13046] ) redirects: [ (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(files.wanted)}) (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(filelist)}) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(filelist)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ ('Fetching ') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(wc)} {(-l)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(filelist)} ) ] ) (C {(tr)} {(-d)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [13078 13096] ) (' ') ) } ) (C {(echo)} {(${ VSub_Name NDEBUG)} {(DQ ('files... '))}) (Pipeline children: [ (SimpleCommand words: [ {(lam)} {(-s)} {(DQ (${ VSub_Name FETCHDIR) (/f/))} {(-)} {(-s)} {(DQ (.gz))} ] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (SimpleCommand words: [ {(xargs)} {(${ VSub_Name XARGST)} {(${ VSub_Name PHTTPGET)} {(${ VSub_Name SERVERNAME)} ] redirects: [ (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(${ VSub_Name QUIETREDIR)} ) ] ) ] negated: F ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(Y)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name Y) (.gz)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (failed.))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 13187] ) ] spids: [16777215 13202] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(${ VSub_Name Y) (.gz)} ) ] ) (C {(${ VSub_Name SHA256)} {(-q)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [13209 13229] ) } {(Lit_Other '=')} {(${ VSub_Name Y)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(${ VSub_Name Y) (.gz)} {(files/) (${ VSub_Name Y) (.gz)}) ] spids: [16777215 13240] ) ] else_action: [ (C {(echo)} {(DQ (${ VSub_Name Y) (' has incorrect hash.'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [13257 13275] ) ] spids: [13168 13278] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (C {(echo)} {(DQ (done.))}) ] spids: [16777215 13069] ) ] spids: [16777215 13292] ) (C {(rm)} {(files.wanted)} {(filelist)} {(patchlist)}) ] spids: [12676] ) spids: [12671 12675] ) (FuncDef name: fetch_create_manifest body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-L)} {(DQ (${ VSub_Name BDHASH) (-install))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-r)} {(${ VSub_Name BDHASH) (-install/)}) (C {(rm)} {(${ VSub_Name BDHASH) (-install)}) ] spids: [16777215 13345] ) ] spids: [16777215 13366] ) (Pipeline children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(modifiedfiles)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)}) (C {(echo)} {(-n)} {(DQ ('The following files are affected by updates, '))}) (C {(echo)} {(DQ ('but no changes have'))}) (C {(echo)} {(-n)} {(DQ ('been downloaded because the files have been '))}) (C {(echo)} {(DQ ('modified locally:'))}) (C {(cat)} {(modifiedfiles)}) ] spids: [16777215 13385] ) ] spids: [16777215 13428] ) (C {($ VSub_Name '$PAGER')}) ] negated: F ) (C {(rm)} {(modifiedfiles)}) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (Pipeline children: [ (C {(Lit_Other '[')} {(-s)} {(INDEX-PRESENT)} {(Lit_Other ']')}) ] negated: T ) (Pipeline children: [(C {(Lit_Other '[')} {(-s)} {(INDEX-NEW)} {(Lit_Other ']')})] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (C {(echo)}) (C {(echo)} {(-n)} {(DQ ('No updates needed to update system to '))}) (C {(echo)} {(DQ (${ VSub_Name RELNUM) (-p) (${ VSub_Name RELPATCHNUM) (.))}) (ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 13471] ) ] spids: [16777215 13510] ) (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(INDEX-PRESENT)})] ) (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-PRESENT.flist)})] ) ] negated: F ) (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(INDEX-NEW)})] ) (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW.flist)})] ) ] negated: F ) (SimpleCommand words: [{(comm)} {(-23)} {(INDEX-PRESENT.flist)} {(INDEX-NEW.flist)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(files.removed)})] ) (SimpleCommand words: [{(comm)} {(-13)} {(INDEX-PRESENT.flist)} {(INDEX-NEW.flist)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(files.added)})] ) (SimpleCommand words: [{(comm)} {(-12)} {(INDEX-PRESENT.flist)} {(INDEX-NEW.flist)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(files.updated)})] ) (C {(rm)} {(INDEX-PRESENT.flist)} {(INDEX-NEW.flist)}) (Pipeline children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(files.removed)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)}) (C {(echo)} {(-n)} {(DQ ('The following files will be removed '))}) (C {(echo)} { (DQ ('as part of updating to ') (${ VSub_Name RELNUM) (-p) (${ VSub_Name RELPATCHNUM) (':') ) } ) (C {(cat)} {(files.removed)}) ] spids: [16777215 13636] ) ] spids: [16777215 13671] ) (C {($ VSub_Name '$PAGER')}) ] negated: F ) (C {(rm)} {(files.removed)}) (Pipeline children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(files.added)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)}) (C {(echo)} {(-n)} {(DQ ('The following files will be added '))}) (C {(echo)} { (DQ ('as part of updating to ') (${ VSub_Name RELNUM) (-p) (${ VSub_Name RELPATCHNUM) (':') ) } ) (C {(cat)} {(files.added)}) ] spids: [16777215 13699] ) ] spids: [16777215 13734] ) (C {($ VSub_Name '$PAGER')}) ] negated: F ) (C {(rm)} {(files.added)}) (Pipeline children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(files.updated)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)}) (C {(echo)} {(-n)} {(DQ ('The following files will be updated '))}) (C {(echo)} { (DQ ('as part of updating to ') (${ VSub_Name RELNUM) (-p) (${ VSub_Name RELPATCHNUM) (':') ) } ) (C {(cat)} {(files.updated)}) ] spids: [16777215 13762] ) ] spids: [16777215 13798] ) (C {($ VSub_Name '$PAGER')}) ] negated: F ) (C {(rm)} {(files.updated)}) (AndOr ops: [Op_DPipe] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MDIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(mktemp)} {(-d)} {(install.XXXXXX)})] ) left_token: <Left_Backtick '`'> spids: [13816 13822] ) } spids: [13815] ) ] spids: [13815] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(mv)} {(INDEX-PRESENT)} {(${ VSub_Name MDIR) (/INDEX-OLD)}) (C {(mv)} {(INDEX-NEW)} {(${ VSub_Name MDIR) (/INDEX-NEW)}) (C {(ln)} {(-s)} {(${ VSub_Name MDIR)} {(${ VSub_Name BDHASH) (-install)}) ] spids: [13322] ) spids: [13317 13321] ) (FuncDef name: fetch_warn_eol body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NOWTIME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(date)} {(DQ ('+%s'))})]) left_token: <Left_Backtick '`'> spids: [13893 13899] ) } spids: [13892] ) ] spids: [13892] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(lasteolwarn)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LASTWARN) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(cat)} {(lasteolwarn)})]) left_token: <Left_Backtick '`'> spids: [13922 13926] ) } spids: [13921] ) ] spids: [13921] ) ] spids: [16777215 13918] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LASTWARN) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(expr)} {(${ VSub_Name NOWTIME)} {(-)} {(63072000)})] ) left_token: <Left_Backtick '`'> spids: [13933 13943] ) } spids: [13932] ) ] spids: [13932] ) ] spids: [13929 13946] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name EOLTIME)} {(-lt)} {(${ VSub_Name NOWTIME)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 14002 stdin_parts: [ ('WARNING: ') (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-sr)})]) left_token: <Left_Backtick '`'> spids: [13983 13987] ) (' HAS PASSED ITS END-OF-LIFE DATE.\n') ('Any security issues discovered after ') (CommandSubPart command_list: (CommandList children: [(C {(date)} {(-r)} {(${ VSub_Name EOLTIME)})] ) left_token: <Left_Backtick '`'> spids: [13990 13998] ) ('\n') ('will not have been corrected.\n') ] ) ] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 13971] ) ] spids: [16777215 14009] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SINCEWARN) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(${ VSub_Name NOWTIME)} {(-)} {(${ VSub_Name LASTWARN)}) ] ) left_token: <Left_Backtick '`'> spids: [14022 14034] ) } spids: [14021] ) ] spids: [14021] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TIMELEFT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(${ VSub_Name EOLTIME)} {(-)} {(${ VSub_Name NOWTIME)}) ] ) left_token: <Left_Backtick '`'> spids: [14038 14050] ) } spids: [14037] ) ] spids: [14037] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name TIMELEFT)} {(-gt)} {(7884000)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 14073] ) ] spids: [16777215 14081] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name TIMELEFT)} {(-gt)} { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(${ VSub_Name SINCEWARN)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\*'>)} {(3)} ) ] ) left_token: <Left_Backtick '`'> spids: [14103 14113] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 14118] ) ] spids: [16777215 14126] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name TIMELEFT)} {(-lt)} {(604800)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UNIT) op: Equal rhs: {(DQ (day))} spids: [14152] ) ] spids: [14152] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SIZE) op: Equal rhs: {(86400)} spids: [14158] ) ] spids: [14158] ) ] spids: [16777215 14149] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name TIMELEFT)} {(-lt)} {(2678400)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UNIT) op: Equal rhs: {(DQ (week))} spids: [14180] ) ] spids: [14180] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SIZE) op: Equal rhs: {(604800)} spids: [14186] ) ] spids: [14186] ) ] spids: [14162 14177] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UNIT) op: Equal rhs: {(DQ (month))} spids: [14193] ) ] spids: [14193] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SIZE) op: Equal rhs: {(2678400)} spids: [14199] ) ] spids: [14199] ) ] spids: [14190 14203] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NUM) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(${ VSub_Name TIMELEFT)} {(/)} {(${ VSub_Name SIZE)}) ] ) left_token: <Left_Backtick '`'> spids: [14212 14224] ) } spids: [14211] ) ] spids: [14211] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name NUM)} {(KW_Bang '!') (Lit_Other '=')} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UNIT) op: Equal rhs: {(DQ (${ VSub_Name UNIT) (s))} spids: [14246] ) ] spids: [14246] ) ] spids: [16777215 14243] ) ] spids: [16777215 14255] ) (C {(echo)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 14289 stdin_parts: [ ('WARNING: ') (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-sr)})]) left_token: <Left_Backtick '`'> spids: [14272 14276] ) (' is approaching its End-of-Life date.\n') ('It is strongly recommended that you upgrade to a newer\n') ('release within the next ') (${ VSub_Name NUM) (' ') (${ VSub_Name UNIT) ('.\n') ] ) ] ) (SimpleCommand words: [{(echo)} {(${ VSub_Name NOWTIME)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(lasteolwarn)})] ) ] spids: [13885] ) spids: [13880 13884] ) (FuncDef name: fetch_run body: (BraceGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(workdir_init)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DAmp] children: [(C {(fetch_pick_server_init)}) (C {(fetch_pick_server)})] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (Pipeline children:[(C {(fetch_key)})] negated:T) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_pick_server)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [14353 14365] ) ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (Pipeline children:[(C {(fetch_tag)})] negated:T) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_pick_server)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [14384 14396] ) ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_tagsanity)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_metadata)} {(INDEX-NEW)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_filter_metadata)} {(INDEX-NEW)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_filter_metadata)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(fetch_filter_kernel_names)} {(INDEX-NEW)} {(${ VSub_Name KERNCONF)}) (C {(fetch_filter_kernel_names)} {(INDEX-OLD)} {(${ VSub_Name KERNCONF)}) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_inspect_system)} {(INDEX-OLD)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(fetch_filter_unmodified_notpresent)} {(INDEX-OLD)} {(INDEX-PRESENT)} {(INDEX-NEW)} {(/dev/null)} ) (C {(fetch_filter_allowadd)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (C {(fetch_filter_allowdelete)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (C {(fetch_filter_modified_metadata)} {(INDEX-OLD)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (C {(fetch_filter_uptodate)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_files_prepare)} {(INDEX-OLD)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_files)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_create_manifest)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_warn_eol)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) ] spids: [14317] ) spids: [14312 14316] ) (FuncDef name: upgrade_guess_components body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name STRICTCOMPONENTS))} {(Lit_Other '=')} {(DQ (no))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_filter_metadata_components)} {($ VSub_Number '$1')}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (C {(echo)} {(-n)} {(DQ ('Inspecting system... '))}) (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1-3)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(INDEX-ALL)})] ) (C {(tr)} {(SQ <'|'>)} {(SQ <' '>)}) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(read)} {(C)} {(S)} {(F)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('+ ') (${ VSub_Name C) ('|') (${ VSub_Name S))} ) ] spids: [16777215 14837] ) ] spids: [16777215 14854] ) (C {(echo)} {(DQ ('= ') (${ VSub_Name C) ('|') (${ VSub_Name S))}) ] spids: [14817 14871] ) ) (C {(sort)}) (C {(uniq)} {(-c)}) (SimpleCommand words: [{(sed)} {(-E)} {(SQ <'s,^ +,,'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(compfreq)})] ) ] negated: F ) (Pipeline children: [ (C {(grep)} {(SQ <' = '>)} {(compfreq)}) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (3)} {(-d)} {(SQ <' '>)}) (SimpleCommand words: [{(sort)} {(-k)} {(2) (Lit_Comma ',') (2)} {(-t)} {(SQ <' '>)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(compfreq.total)} ) ] ) ] negated: F ) (Pipeline children: [ (C {(grep)} {(SQ <' + '>)} {(compfreq)}) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (3)} {(-d)} {(SQ <' '>)}) (SimpleCommand words: [{(sort)} {(-k)} {(2) (Lit_Comma ',') (2)} {(-t)} {(SQ <' '>)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(compfreq.present)} ) ] ) ] negated: F ) (Pipeline children: [ (C {(join)} {(-t)} {(SQ <' '>)} {(-1)} {(2)} {(-2)} {(2)} {(compfreq.present)} {(compfreq.total)} ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(read)} {(S)} {(P)} {(T)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name P)} {(-gt)} { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(${ VSub_Name T)} {(/)} {(2)}) ] ) left_token: <Left_Backtick '`'> spids: [15042 15052] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(${ VSub_Name S)})] spids: [16777215 15057] ) ] spids: [16777215 15067] ) ] spids: [15029 15070] ) redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(comp.present)} ) ] ) ] negated: F ) (SimpleCommand words: [{(cut)} {(-f)} {(2)} {(-d)} {(SQ <' '>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(compfreq.total)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(comp.total)} ) ] ) (C {(rm)} {(INDEX-ALL)} {(compfreq)} {(compfreq.total)} {(compfreq.present)}) (C {(echo)} {(DQ (done.))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KCOMP) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(${ VSub_Name KERNCONF)}) (C {(tr)} {(SQ <A-Z>)} {(SQ <a-z>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [15159 15177] ) } spids: [15158] ) ] spids: [15158] ) (SimpleCommand words: [ {(grep)} {(-E)} { (DQ ('^kernel') (Lit_Other '\\') ('|') (${ VSub_Name KCOMP) (EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) ) } {(comp.total)} ] redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(comp.present)})] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(grep)} {(-qE)} {(DQ ('^kernel') (Lit_Other '\\') ('|'))} {(comp.total)} ) (Pipeline children: [ (C {(grep)} {(-qE)} { (DQ ('^kernel') (Lit_Other '\\') ('|') (${ VSub_Name KCOMP) (EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) ) } {(comp.total)} ) ] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 15267 stdin_parts: [ ('\n') ('WARNING: This system is running a ') (Right_DoubleQuote '"') (${ VSub_Name KCOMP) (Right_DoubleQuote '"') (' kernel, which is not a\n') ('kernel configuration distributed as part of FreeBSD ') (${ VSub_Name RELNUM) ('.\n') ( 'This kernel will not be updated: you MUST update the kernel manually\n' ) ('before running ') (Right_DoubleQuote '"') ($ VSub_Number '$0') (' install') (Right_DoubleQuote '"') ('.\n') ] ) ] ) ] spids: [16777215 15238] ) ] spids: [16777215 15269] ) (SimpleCommand words: [{(sort)} {(-u)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(comp.present)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(comp.present.tmp)} ) ] ) (C {(mv)} {(comp.present.tmp)} {(comp.present)}) (SimpleCommand words: [{(comm)} {(-13)} {(comp.present)} {(comp.total)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(comp.absent)})] ) (C {(echo)}) (C {(echo)} {(-n)} {(DQ ('The following components of FreeBSD '))}) (C {(echo)} {(DQ ('seem to be installed:'))}) (Pipeline children: [ (SimpleCommand words: [{(tr)} {(SQ <'|'>)} {(SQ </>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(comp.present)})] ) (C {(fmt)} {(-72)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(-n)} {(DQ ('The following components of FreeBSD '))}) (C {(echo)} {(DQ ('do not seem to be installed:'))}) (Pipeline children: [ (SimpleCommand words: [{(tr)} {(SQ <'|'>)} {(SQ </>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(comp.absent)})] ) (C {(fmt)} {(-72)}) ] negated: F ) (C {(echo)}) (AndOr ops: [Op_DPipe] children: [ (C {(continuep)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (C {(echo)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPONENTS) op: Equal rhs: {(DQ )} spids: [15437] ) ] spids: [15437] ) (SimpleCommand words: [{(tr)} {(SQ <'|'>)} {(SQ </>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(comp.present)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(comp.present.tmp)} ) ] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(C)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPONENTS) op: Equal rhs: {(DQ (${ VSub_Name COMPONENTS) (' ') (${ VSub_Name C))} spids: [15471] ) ] spids: [15471] ) ] spids: [15468 15483] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(comp.present.tmp)})] ) (C {(rm)} {(comp.present)} {(comp.present.tmp)} {(comp.absent)} {(comp.total)}) ] spids: [16777215 14729] ) ] spids: [16777215 15506] ) ] spids: [14707] ) spids: [14702 14706] ) (FuncDef name: upgrade_guess_new_kernel body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name STRICTCOMPONENTS))} {(Lit_Other '=')} {(DQ (no))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:METAHASH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(look)} {(DQ ($ VSub_Number '$1') ('|'))} {(tINDEX.present)} ) (C {(cut)} {(-f)} {(2)} {(-d)} {(SQ <'|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [15558 15581] ) } spids: [15557] ) ] spids: [15557] ) (SimpleCommand words: [{(gunzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) (${ VSub_Name METAHASH) (.gz)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.all)} ) ] ) (ForEach iter_name: C iter_words: [{(${ VSub_Name COMPONENTS)}] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(${ VSub_Name C)} {(Lit_Other '=')} {(DQ (kernel/) (${ VSub_Name KCOMP))} {(Lit_Other ']')} ) (Pipeline children: [ (C {(grep)} {(-qE)} { (DQ ('^kernel') (Lit_Other '\\') ('|') (${ VSub_Name KCOMP) (Lit_Other '\\') ('|') ) } {($ VSub_Number '$1') (.all)} ) ] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPONENTS) op: Equal rhs: {(DQ (${ VSub_Name COMPONENTS) (' kernel/generic'))} spids: [15671] ) ] spids: [15671] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NKERNCONF) op: Equal rhs: {(DQ (GENERIC))} spids: [15680] ) ] spids: [15680] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 15715 stdin_parts: [ ('\n') ('WARNING: This system is running a ') (Right_DoubleQuote '"') (${ VSub_Name KCOMP) (Right_DoubleQuote '"') (' kernel, which is not a\n') ( 'kernel configuration distributed as part of FreeBSD ' ) (${ VSub_Name RELNUM) ('.\n') ('As part of upgrading to FreeBSD ') (${ VSub_Name RELNUM) (', this kernel will be\n') ('replaced with a ') (Right_DoubleQuote '"') (generic) (Right_DoubleQuote '"') (' kernel.\n') ] ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(continuep)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [16777215 15668] ) ] spids: [16777215 15726] ) ] spids: [15622 15729] ) spids: [15616 15620] ) (C {(rm)} {($ VSub_Number '$1') (.all)}) ] spids: [16777215 15550] ) ] spids: [16777215 15743] ) ] spids: [15528] ) spids: [15523 15527] ) (FuncDef name: upgrade_oldall_to_oldnew body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Number '$1')})] ) (SimpleCommand words: [{(sort)} {(-u)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.paths)} ) ] ) ] negated: F ) (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Number '$2')})] ) (C {(sort)} {(-u)}) (C {(comm)} {(-13)} {($ VSub_Number '$1') (.paths)} {(-)}) (C {(lam)} {(-)} {(-s)} {(DQ ('|-||||||'))}) (SimpleCommand words: [{(sort)} {(-)} {($ VSub_Number '$1')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.tmp)} ) ] ) ] negated: F ) (C {(mv)} {($ VSub_Number '$1') (.tmp)} {($ VSub_Number '$1')}) (SimpleCommand words: [{(comm)} {(-23)} {($ VSub_Number '$1')} {($ VSub_Number '$2')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.tmp)} ) ] ) (C {(mv)} {($ VSub_Number '$1') (.tmp)} {($ VSub_Number '$1')}) (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Number '$1')})] ) (SimpleCommand words: [{(sort)} {(-u)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.paths)} ) ] ) ] negated: F ) (Pipeline children: [ (SimpleCommand words: [{(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Number '$2')})] ) (C {(join)} {(-t)} {(SQ <'|'>)} {(-)} {($ VSub_Number '$1') (.paths)}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$2') (.tmp)} ) ] ) ] negated: F ) (C {(rm)} {($ VSub_Number '$1') (.paths)}) (C {(mv)} {($ VSub_Number '$2') (.tmp)} {($ VSub_Number '$2')}) (C {(mv)} {($ VSub_Number '$2')} {($ VSub_Number '$3')}) ] spids: [15759] ) spids: [15754 15758] ) (FuncDef name: samef body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:X) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {(sed)} {(-E)} {(SQ <'s/\\\\$FreeBSD.*\\\\$/\\$FreeBSD\\$/'>)} ] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$1')} ) ] ) (C {(${ VSub_Name SHA256)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [16027 16045] ) } spids: [16026] ) ] spids: [16026] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:Y) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {(sed)} {(-E)} {(SQ <'s/\\\\$FreeBSD.*\\\\$/\\$FreeBSD\\$/'>)} ] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$2')} ) ] ) (C {(${ VSub_Name SHA256)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [16049 16067] ) } spids: [16048] ) ] spids: [16048] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$X')} {(Lit_Other '=')} {($ VSub_Name '$Y')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) terminator: <Op_Semi ';'> ) ] spids: [16777215 16084] ) ] else_action: [ (Sentence child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) terminator: <Op_Semi ';'> ) ] spids: [16093 16102] ) ] spids: [16023] ) spids: [16018 16022] ) (FuncDef name: upgrade_merge body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {($ VSub_Number '$1')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)} {($ VSub_Number '$1')}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (-paths)} ) ] ) ] negated: F ) (C {(rm)} {(-rf)} {(merge/)}) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(F)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:D) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(${ VSub_Name F)})] ) left_token: <Left_Backtick '`'> spids: [16187 16193] ) } spids: [16186] ) ] spids: [16186] ) (C {(mkdir)} {(-p)} {(merge/old/) (${ VSub_Name D)}) (C {(mkdir)} {(-p)} {(merge/) (${ VSub_Name OLDRELNUM) (/) (${ VSub_Name D)}) (C {(mkdir)} {(-p)} {(merge/) (${ VSub_Name RELNUM) (/) (${ VSub_Name D)}) (C {(mkdir)} {(-p)} {(merge/new/) (${ VSub_Name D)}) ] spids: [16183 16244] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$1') (-paths)} ) ] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(F)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:V) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(look)} {(DQ (${ VSub_Name F) ('|'))} {($ VSub_Number '$2')} ) (C {(cut)} {(-f)} {(7)} {(-d)} {(SQ <'|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [16272 16297] ) } spids: [16271] ) ] spids: [16271] ) (SimpleCommand words: [{(gunzip)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) (${ VSub_Name V) (.gz)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(merge/old/) (${ VSub_Name F)} ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(look)} {(DQ (${ VSub_Name F) ('|'))} {($ VSub_Number '$1')} ) (C {(fgrep)} {(-q)} {(DQ ('|f|'))}) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:V) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(look)} {(DQ (${ VSub_Name F) ('|'))} {($ VSub_Number '$1')} ) (C {(cut)} {(-f)} {(3)} {(-d)} {(SQ <'|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [16351 16376] ) } spids: [16350] ) ] spids: [16350] ) (SimpleCommand words: [{(gunzip)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) (${ VSub_Name V) (.gz)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(merge/) (${ VSub_Name OLDRELNUM) (/) (${ VSub_Name F)} ) ] ) ] spids: [16777215 16347] ) ] spids: [16777215 16403] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(look)} {(DQ (${ VSub_Name F) ('|'))} {($ VSub_Number '$3')} ) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (2) (Lit_Comma ',') (7)} {(-d)} {(SQ <'|'>)} ) (C {(fgrep)} {(-q)} {(DQ ('|f|'))}) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:V) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(look)} {(DQ (${ VSub_Name F) ('|'))} {($ VSub_Number '$3')} ) (C {(cut)} {(-f)} {(7)} {(-d)} {(SQ <'|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [16458 16483] ) } spids: [16457] ) ] spids: [16457] ) (SimpleCommand words: [{(gunzip)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) (${ VSub_Name V) (.gz)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(merge/) (${ VSub_Name RELNUM) (/) (${ VSub_Name F)} ) ] ) ] spids: [16777215 16454] ) ] spids: [16777215 16510] ) ] spids: [16264 16513] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$1') (-paths)} ) ] ) (C {(echo)} {(-n)} {(DQ ('Attempting to automatically merge '))}) (C {(echo)} {(-n)} {(DQ ('changes in files...'))}) (SimpleCommand words: [{(Lit_Other ':')}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(failed.merges)})] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(F)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(merge/) (${ VSub_Name RELNUM) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [16777215 16593] ) ] spids: [16777215 16599] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(merge/) (${ VSub_Name OLDRELNUM) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(cp)} {(merge/) (${ VSub_Name RELNUM) (/) (${ VSub_Name F)} {(merge/new/) (${ VSub_Name F)} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [16777215 16635] ) ] spids: [16777215 16658] ) (Case to_match: {(${ VSub_Name F)} arms: [ (case_arm pat_list: [{(/etc/spwd.db)} {(/etc/pwd.db)} {(/etc/login.conf.db)}] action: [ (C {(cp)} {(merge/old/) (${ VSub_Name F)} {(merge/new/) (${ VSub_Name F)} ) ] spids: [16675 16684 16708 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [ {(merge)} {(-p)} {(-L)} {(DQ ('current version'))} {(-L)} {(DQ (${ VSub_Name OLDRELNUM))} {(-L)} {(DQ (${ VSub_Name RELNUM))} {(merge/old/) (${ VSub_Name F)} {(merge/) (${ VSub_Name OLDRELNUM) (/) (${ VSub_Name F) } {(merge/) (${ VSub_Name RELNUM) (/) (${ VSub_Name F) } ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(merge/new/) (${ VSub_Name F)} ) (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(${ VSub_Name F)}] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(failed.merges)} ) ] ) ] spids: [16777215 16789] ) ] spids: [16777215 16803] ) ] spids: [16711 16712 16806 16777215] ) ] spids: [16666 16672 16809] ) ] spids: [16558 16812] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$1') (-paths)} ) ] ) (C {(echo)} {(DQ (' done.'))}) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(F)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(samef)} {(merge/old/) (${ VSub_Name F)} {(merge/) (${ VSub_Name OLDRELNUM) (/) (${ VSub_Name F)} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(cp)} {(merge/) (${ VSub_Name RELNUM) (/) (${ VSub_Name F)} {(merge/new/) (${ VSub_Name F)} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [16777215 16873] ) ] spids: [16777215 16896] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 16918 stdin_parts: [ ('\n') ('The following file could not be merged automatically: ') (${ VSub_Name F) ('\n') ('Press Enter to edit this file in ') (${ VSub_Name EDITOR) (' and resolve the conflicts\n') ('manually...\n') ] ) ] ) (SimpleCommand words: [{(read)} {(dummy)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(/dev/tty)})] ) (SimpleCommand words: [ {(${ VSub_Name EDITOR)} { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_Backtick '`'> spids: [16932 16934] ) (/merge/new/) (${ VSub_Name F) } ] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(/dev/tty)})] ) ] spids: [16839 16945] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(failed.merges)})] ) (C {(rm)} {(failed.merges)}) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(F)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp Op_DAmp] children: [ (C {(Lit_Other '[')} {(-f)} {(merge/old/) (${ VSub_Name F)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-f)} {(merge/new/) (${ VSub_Name F)} {(Lit_Other ']')} ) (C {(samef)} {(merge/old/) (${ VSub_Name F)} {(merge/new/) (${ VSub_Name F)} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [16777215 17026] ) ] spids: [16777215 17032] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp Op_DAmp] children: [ (C {(Lit_Other '[')} {(-f)} {(merge/old/) (${ VSub_Name F)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-f)} {(merge/) (${ VSub_Name OLDRELNUM) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) (C {(samef)} {(merge/old/) (${ VSub_Name F)} {(merge/) (${ VSub_Name OLDRELNUM) (/) (${ VSub_Name F)} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [16777215 17095] ) ] spids: [16777215 17101] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(merge/new/) (${ VSub_Name F)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 17145 stdin_parts: [ ('\n') ( 'The following file will be removed, as it no longer exists in\n' ) ('FreeBSD ') (${ VSub_Name RELNUM) (': ') (${ VSub_Name F) ('\n') ] ) ] ) (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(continuep)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(/dev/tty)} ) ] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [16777215 17125] ) ] spids: [16777215 17163] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 17192 stdin_parts: [ ('\n') ('The following changes, which occurred between FreeBSD ') (${ VSub_Name OLDRELNUM) (' and\n') ('FreeBSD ') (${ VSub_Name RELNUM) (' have been merged into ') (${ VSub_Name F) (':\n') ] ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(diff)} {(-U)} {(5)} {(-L)} {(DQ ('current version'))} {(-L)} {(DQ ('new version'))} {(merge/old/) (${ VSub_Name F)} {(merge/new/) (${ VSub_Name F)} ) (C {(true)}) ] ) (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(continuep)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(/dev/tty)} ) ] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [16973 17242] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$1') (-paths)} ) ] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(F)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(merge/new/) (${ VSub_Name F)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:V) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(${ VSub_Name SHA256)} {(-q)} {(merge/new/) (${ VSub_Name F)} ) ] ) left_token: <Left_Backtick '`'> spids: [17283 17294] ) } spids: [17282] ) ] spids: [17282] ) (SimpleCommand words: [{(gzip)} {(-c)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(merge/new/) (${ VSub_Name F)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(files/) (${ VSub_Name V) (.gz)} ) ] ) (C {(echo)} {(DQ (${ VSub_Name F) ('|') (${ VSub_Name V))}) ] spids: [16777215 17279] ) ] spids: [16777215 17331] ) ] spids: [17262 17334] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$1') (-paths)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(newhashes)} ) ] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(F)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [(C {(look)} {(DQ (${ VSub_Name F) ('|'))} {($ VSub_Number '$3')})] spids: [17362 17377] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Number '$1') (-paths)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$3') (-oldlines)} ) ] ) (SimpleCommand words: [ {(join)} {(-t)} {(SQ <'|'>)} {(-o)} {(1.1) (Lit_Comma ',') (1.2) (Lit_Comma ',') (1.3) (Lit_Comma ',') (1.4) (Lit_Comma ',') (1.5) (Lit_Comma ',') (1.6) (Lit_Comma ',') (2.2) (Lit_Comma ',') (1.8) } {($ VSub_Number '$3') (-oldlines)} {(newhashes)} ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$3') (-newlines)} ) ] ) (Pipeline children: [ (C {(sort)} {($ VSub_Number '$3') (-oldlines)}) (C {(comm)} {(-13)} {(-)} {($ VSub_Number '$3')}) (SimpleCommand words: [{(sort)} {(-)} {($ VSub_Number '$3') (-newlines)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$3') (.tmp)} ) ] ) ] negated: F ) (C {(mv)} {($ VSub_Number '$3') (.tmp)} {($ VSub_Number '$3')}) (C {(rm)} {($ VSub_Number '$1') (-paths)} {(newhashes)} {($ VSub_Number '$3') (-oldlines)} {($ VSub_Number '$3') (-newlines)} ) (C {(rm)} {(-rf)} {(merge/)}) ] spids: [16777215 16136] ) ] spids: [16777215 17505] ) (C {(rm)} {($ VSub_Number '$1')}) ] spids: [16118] ) spids: [16113 16117] ) (FuncDef name: upgrade_run body: (BraceGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(workdir_init)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DAmp] children: [(C {(fetch_pick_server_init)}) (C {(fetch_pick_server)})] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (Pipeline children:[(C {(fetch_key)})] negated:T) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_pick_server)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [17564 17576] ) ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (Pipeline children:[(C {(fetch_tag)})] negated:T) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_pick_server)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [17596 17608] ) ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_tagsanity)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_metadata)} {(INDEX-OLD)} {(INDEX-ALL)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(upgrade_guess_components)} {(INDEX-ALL)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_filter_metadata)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_filter_metadata)} {(INDEX-ALL)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (SimpleCommand words: [{(sort)} {(INDEX-OLD)} {(INDEX-ALL)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD.tmp)})] ) (C {(mv)} {(INDEX-OLD.tmp)} {(INDEX-OLD)}) (C {(rm)} {(INDEX-ALL)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLDRELNUM) op: Equal rhs: {(${ VSub_Name RELNUM)} spids: [17722] ) ] spids: [17722] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RELNUM) op: Equal rhs: {(${ VSub_Name TARGETRELEASE)} spids: [17728] ) ] spids: [17728] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLDFETCHDIR) op: Equal rhs: {(${ VSub_Name FETCHDIR)} spids: [17734] ) ] spids: [17734] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FETCHDIR) op: Equal rhs: {(${ VSub_Name RELNUM) (/) (${ VSub_Name ARCH)} spids: [17740] ) ] spids: [17740] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (Pipeline children:[(C {(fetch_tag)})] negated:T) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_pick_server)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [17766 17778] ) ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_metadata)} {(INDEX-ALL)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(upgrade_guess_new_kernel)} {(INDEX-ALL)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_filter_metadata)} {(INDEX-ALL)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(upgrade_oldall_to_oldnew)} {(INDEX-OLD)} {(INDEX-ALL)} {(INDEX-NEW)}) (C {(fetch_filter_kernel_names)} {(INDEX-NEW)} {(${ VSub_Name NKERNCONF)}) (C {(fetch_filter_kernel_names)} {(INDEX-OLD)} {(${ VSub_Name KERNCONF)}) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_inspect_system)} {(INDEX-OLD)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(fetch_filter_mergechanges)} {(INDEX-OLD)} {(INDEX-PRESENT)} {(tomerge-old)}) (C {(fetch_filter_unmodified_notpresent)} {(INDEX-OLD)} {(INDEX-PRESENT)} {(INDEX-NEW)} {(tomerge-old)} ) (C {(fetch_filter_allowadd)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (C {(fetch_filter_allowdelete)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (C {(fetch_filter_modified_metadata)} {(INDEX-OLD)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (C {(fetch_filter_uptodate)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (C {(fetch_files_premerge)} {(tomerge-old)}) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_files_prepare)} {(INDEX-OLD)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PATCHDIR) op: Equal rhs: {(to-) (${ VSub_Name RELNUM) (/) (${ VSub_Name ARCH) (/bp)} spids: [18083] ) ] spids: [18083] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_files)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(upgrade_merge)} {(tomerge-old)} {(INDEX-PRESENT)} {(INDEX-NEW)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_create_manifest)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(touch)} {(${ VSub_Name BDHASH) (-install/kernelfirst)}) (C {(echo)} { (DQ ('To install the downloaded upgrades, run ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Number '$0') (' install') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (.) ) } ) ] spids: [17528] ) spids: [17523 17527] ) (FuncDef name: install_verify body: (BraceGroup children: [ (Pipeline children: [ (C {(cat)} {($ VSub_At '$@')}) (C {(cut)} {(-f)} {(2) (Lit_Comma ',') (7)} {(-d)} {(SQ <'|'>)}) (C {(grep)} {(-E)} {(SQ <'^f'>)}) (C {(cut)} {(-f)} {(2)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(sort)} {(-u)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(filelist)})] ) ] negated: F ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(HASH)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(files/) (${ VSub_Name HASH) (.gz)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(DQ ('Update files missing -- '))}) (C {(echo)} {(DQ ('this should never happen.'))}) (C {(echo)} {(DQ ("Re-run '") ($ VSub_Number '$0') (" fetch'."))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 18291] ) ] spids: [16777215 18324] ) ] spids: [18271 18327] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (C {(rm)} {(filelist)}) ] spids: [18193] ) spids: [18188 18192] ) (FuncDef name: install_unschg body: (BraceGroup children: [ (Pipeline children: [ (C {(cat)} {($ VSub_At '$@')}) (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(filelist)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (Pipeline children: [ (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(F)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-e)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [16777215 18419] ) ] else_action: [(C {(echo)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name F)})] spids: [18425 18439] ) ] spids: [18397 18442] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(filelist)})] ) (C {(xargs)} {(chflags)} {(noschg)}) ] negated: F ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(rm)} {(filelist)}) ] spids: [18354] ) spids: [18349 18353] ) (FuncDef name: backup_kernel_finddir body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CNT) op:Equal rhs:{(0)} spids:[18486])] spids: [18486] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {($ VSub_Name '$BASEDIR') (/) ($ VSub_Name '$BACKUPKERNELDIR')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 18522] ) ] spids: [16777215 18530] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {($ VSub_Name '$BASEDIR') (/) ($ VSub_Name '$BACKUPKERNELDIR')} {(-a)} {(-e)} {($ VSub_Name '$BASEDIR') (/) ($ VSub_Name '$BACKUPKERNELDIR') (/.freebsd-update)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 18566] ) ] spids: [16777215 18574] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CNT) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:CNT) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [18587 18594] ) } spids: [18586] ) ] spids: [18586] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$CNT')} {(-gt)} {(9)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('Could not find valid backup dir (') ($ VSub_Name '$BASEDIR') (/) ($ VSub_Name '$BACKUPKERNELDIR') (')') ) } ) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 18610] ) ] spids: [16777215 18629] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUPKERNELDIR) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$BACKUPKERNELDIR')}) (C {(sed)} {(-Ee)} {(SQ <'s/[0-9]\\$//'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [18634 18648] ) ) } spids: [18632] ) ] spids: [18632] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUPKERNELDIR) op: Equal rhs: {(DQ (${ VSub_Name BACKUPKERNELDIR) (${ VSub_Name CNT))} spids: [18652] ) ] spids: [18652] ) ] spids: [18496 18663] ) ) ] spids: [18483] ) spids: [18478 18482] ) (FuncDef name: backup_kernel body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$BACKUPKERNEL')} {(KW_Bang '!') (Lit_Other '=')} {(yes)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 18715] ) ] spids: [16777215 18723] ) (C {(backup_kernel_finddir)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {($ VSub_Name '$BASEDIR') (/) ($ VSub_Name '$BACKUPKERNELDIR')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-fr)} {($ VSub_Name '$BASEDIR') (/) ($ VSub_Name '$BACKUPKERNELDIR')}) ] spids: [16777215 18760] ) ] spids: [16777215 18772] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$BASEDIR') (/) ($ VSub_Name '$BACKUPKERNELDIR')}) (Pipeline children: [ (C {(mtree)} {(-cdn)} {(-p)} {(DQ (${ VSub_Name BASEDIR) (/) (${ VSub_Name KERNELDIR))}) (SimpleCommand words: [ {(mtree)} {(-Ue)} {(-p)} {(DQ (${ VSub_Name BASEDIR) (/) (${ VSub_Name BACKUPKERNELDIR))} ] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) ] negated: F ) (C {(touch)} {($ VSub_Name '$BASEDIR') (/) ($ VSub_Name '$BACKUPKERNELDIR') (/.freebsd-update)} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Could not create kernel backup directory'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 18856] ) ] spids: [16777215 18871] ) (C {(set)} {(-f)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$BACKUPKERNELSYMBOLFILES')} {(Lit_Other '=')} {(yes)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FINDFILTER) op: Equal rhs: {(DQ )} spids: [18909] ) ] spids: [18909] ) ] spids: [16777215 18906] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FINDFILTER) op: Equal rhs: {(DQ ('-a ! -name *.debug -a ! -name *.symbols'))} spids: [18917] ) ] spids: [18917] ) ] spids: [18914 18923] ) (Subshell child: (AndOr ops: [Op_DAmp] children: [ (C {(cd)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name KERNELDIR)}) (C {(find)} {(.)} {(-type)} {(f)} {($ VSub_Name '$FINDFILTER')} {(-exec)} {(cp)} {(-pl)} {(SQ <'{}'>)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name BACKUPKERNELDIR) (/) (SQ <'{}'>)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\;'>)} ) ] ) spids: [18931 18979] ) (C {(set)} {(Lit_Other '+') (f)}) ] spids: [18694] ) spids: [18689 18693] ) (FuncDef name: install_from_index body: (BraceGroup children: [ (Pipeline children: [ (C {(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)} {($ VSub_Number '$1')}) (C {(tr)} {(SQ <'|'>)} {(SQ <' '>)}) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(read)} {(FPATH)} {(TYPE)} {(OWNER)} {(GROUP)} {(PERM)} {(FLAGS)} {(HASH)} {(LINK)} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(${ VSub_Name TYPE)} arms: [ (case_arm pat_list: [{(d)}] action: [ (C {(install)} {(-d)} {(-o)} {(${ VSub_Name OWNER)} {(-g)} {(${ VSub_Name GROUP)} {(-m)} {(${ VSub_Name PERM)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name FPATH)} ) ] spids: [19079 19080 19120 16777215] ) (case_arm pat_list: [{(f)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name LINK))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(gunzip)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(files/) (${ VSub_Name HASH) (.gz)} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name HASH)} ) ] ) (C {(install)} {(-S)} {(-o)} {(${ VSub_Name OWNER)} {(-g)} {(${ VSub_Name GROUP)} {(-m)} {(${ VSub_Name PERM)} {(${ VSub_Name HASH)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name FPATH)} ) (C {(rm)} {(${ VSub_Name HASH)}) ] spids: [16777215 19142] ) ] else_action: [ (C {(ln)} {(-f)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name LINK)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name FPATH)} ) ] spids: [19210 19238] ) ] spids: [19123 19124 19241 16777215] ) (case_arm pat_list: [{(L)}] action: [ (C {(ln)} {(-sfh)} {(${ VSub_Name HASH)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name FPATH)} ) ] spids: [19244 19245 19269 16777215] ) ] spids: [19070 19076 19272] ) ] spids: [19067 19275] ) ) ] negated: F ) (Pipeline children: [ (SimpleCommand words: [{(tr)} {(SQ <'|'>)} {(SQ <' '>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Number '$1')})] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(read)} {(FPATH)} {(TYPE)} {(OWNER)} {(GROUP)} {(PERM)} {(FLAGS)} {(HASH)} {(LINK)} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(${ VSub_Name TYPE)} {(Lit_Other '=')} {(DQ (f))} {(Lit_Other ']')} ) (Pipeline children: [ (C {(Lit_Other '[')} {(${ VSub_Name FLAGS)} {(Lit_Other '=')} {(DQ (0))} {(Lit_Other ']')} ) ] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(chflags)} {(${ VSub_Name FLAGS)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name FPATH)} ) ] spids: [16777215 19360] ) ] spids: [16777215 19378] ) ] spids: [19321 19381] ) ) ] negated: F ) ] spids: [19003] ) spids: [18998 19002] ) (FuncDef name: install_delete body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [{(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Number '$2')})] ) (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(newfiles)})] ) ] negated: F ) (Pipeline children: [ (C {(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)} {($ VSub_Number '$1')}) (C {(join)} {(-t)} {(SQ <'|'>)} {(-v)} {(1)} {(-)} {(newfiles)}) (C {(sort)} {(-r)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)}) (C {(cut)} {(-f)} {(1) (Lit_Comma ',') (2)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(tr)} {(SQ <'|'>)} {(SQ <' '>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(killfiles)})] ) ] negated: F ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(FPATH)} {(TYPE)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Case to_match: {(${ VSub_Name TYPE)} arms: [ (case_arm pat_list: [{(d)}] action: [(C {(rmdir)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name FPATH)})] spids: [19547 19548 19562 16777215] ) (case_arm pat_list: [{(f)}] action: [(C {(rm)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name FPATH)})] spids: [19565 19566 19580 16777215] ) (case_arm pat_list: [{(L)}] action: [(C {(rm)} {(${ VSub_Name BASEDIR) (/) (${ VSub_Name FPATH)})] spids: [19583 19584 19598 16777215] ) ] spids: [19538 19544 19601] ) ] spids: [19535 19604] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(killfiles)})] ) (C {(rm)} {(newfiles)} {(killfiles)}) ] spids: [19394] ) spids: [19389 19393] ) (FuncDef name: install_files body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {($ VSub_Number '$1') (/kerneldone)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD)})] ) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) (AndOr ops: [Op_DPipe] children: [ (C {(backup_kernel)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_from_index)} {(INDEX-NEW)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_delete)} {(INDEX-OLD)} {(INDEX-NEW)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(INDEX-OLD)} {(-o)} {(-s)} {(INDEX-NEW)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(kldxref)} {(-R)} {(${ VSub_Name BASEDIR) (/boot/)}] redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) ] spids: [16777215 19759] ) ] spids: [16777215 19775] ) (C {(touch)} {($ VSub_Number '$1') (/kerneldone)}) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-f)} {($ VSub_Number '$1') (/kernelfirst)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-s)} {(INDEX-OLD)} {(-o)} {(-s)} {(INDEX-NEW)} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 19839 stdin_parts: [ ('\n') ( 'Kernel updates have been installed. Please reboot and run\n' ) (Right_DoubleQuote '"') ($ VSub_Number '$0') (' install') (Right_DoubleQuote '"') (' again to finish installing updates.\n') ] ) ] ) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(0)} ) ] spids: [16777215 19823] ) ] spids: [16777215 19846] ) ] spids: [16777215 19654] ) ] spids: [16777215 19849] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {($ VSub_Number '$1') (/worlddone)} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^[^|]+\\|d\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_from_index)} {(INDEX-NEW)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (C {(grep)} {(-vE)} {(SQ <'^[^|]+\\|d\\|'>)}) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^/libexec/ld-elf[^|]*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_from_index)} {(INDEX-NEW)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (C {(grep)} {(-vE)} {(SQ <'^[^|]+\\|d\\|'>)}) (C {(grep)} {(-vE)} {(SQ <'^/libexec/ld-elf[^|]*\\.so\\.[0-9]+\\|'>)}) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^[^|]*/lib/[^|]*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_from_index)} {(INDEX-NEW)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)}) (C {(grep)} {(-vE)} {(SQ <'^[^|]+\\|d\\|'>)}) (C {(grep)} {(-vE)} {(SQ <'^/libexec/ld-elf[^|]*\\.so\\.[0-9]+\\|'>)}) (SimpleCommand words: [{(grep)} {(-vE)} {(SQ <'^[^|]*/lib/[^|]*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD)})] ) ] negated: F ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (C {(grep)} {(-vE)} {(SQ <'^[^|]+\\|d\\|'>)}) (C {(grep)} {(-vE)} {(SQ <'^/libexec/ld-elf[^|]*\\.so\\.[0-9]+\\|'>)}) (SimpleCommand words: [{(grep)} {(-vE)} {(SQ <'^[^|]*/lib/[^|]*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_from_index)} {(INDEX-NEW)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_delete)} {(INDEX-OLD)} {(INDEX-NEW)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(${ VSub_Name BASEDIR) (/etc/master.passwd)} {(-nt)} {(${ VSub_Name BASEDIR) (/etc/spwd.db)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(${ VSub_Name BASEDIR) (/etc/master.passwd)} {(-nt)} {(${ VSub_Name BASEDIR) (/etc/pwd.db)} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(pwd_mkdb)} {(-d)} {(${ VSub_Name BASEDIR) (/etc)} {(${ VSub_Name BASEDIR) (/etc/master.passwd)} ) ] spids: [16777215 20205] ) ] spids: [16777215 20223] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name BASEDIR) (/etc/login.conf)} {(-nt)} {(${ VSub_Name BASEDIR) (/etc/login.conf.db)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(cap_mkdb)} {(${ VSub_Name BASEDIR) (/etc/login.conf)})] spids: [16777215 20250] ) ] spids: [16777215 20261] ) (C {(touch)} {($ VSub_Number '$1') (/worlddone)}) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (C {(grep)} {(-E)} {(SQ <'^[^|]*/lib/[^|]*\\.so\\.[0-9]+\\|'>)}) (C {(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(sort)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(newfiles)})] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)} ) (C {(grep)} {(-E)} {(SQ <'^[^|]*/lib/[^|]*\\.so\\.[0-9]+\\|'>)}) (C {(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}) (C {(sort)}) (C {(join)} {(-v)} {(1)} {(-)} {(newfiles)}) (C {(grep)} {(-q)} {(.)}) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 20417 stdin_parts: [ ('\n') ( 'Completing this upgrade requires removing old shared object files.\n' ) ( 'Please rebuild all installed 3rd party software (e.g., programs\n' ) ('installed from the ports tree) and then run ') (Right_DoubleQuote '"') ($ VSub_Number '$0') (' install') (Right_DoubleQuote '"') ('\n') ('again to finish installing updates.\n') ] ) ] ) (C {(rm)} {(newfiles)}) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(0)} ) ] spids: [16777215 20398] ) ] spids: [16777215 20429] ) (C {(rm)} {(newfiles)}) ] spids: [16777215 19871] ) ] spids: [16777215 20437] ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (C {(grep)} {(-vE)} {(SQ <'^[^|]+\\|d\\|'>)}) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^[^|]*/lib/[^|]*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) ] negated: F ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)}) (C {(grep)} {(-vE)} {(SQ <'^[^|]+\\|d\\|'>)}) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^[^|]*/lib/[^|]*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_delete)} {(INDEX-OLD)} {(INDEX-NEW)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^[^|]+\\|d\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) ] negated: F ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)}) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^[^|]+\\|d\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_delete)} {(INDEX-OLD)} {(INDEX-NEW)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(rm)} {(INDEX-OLD)} {(INDEX-NEW)}) ] spids: [19633] ) spids: [19628 19632] ) (FuncDef name: install_setup_rollback body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name BDHASH) (-install/kernelfirst)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(${ VSub_Name BDHASH) (-install/kernelfirst)}) (C {(rm)} {(${ VSub_Name BDHASH) (-install/kerneldone)}) ] spids: [16777215 20657] ) ] spids: [16777215 20676] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name BDHASH) (-install/worlddone)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(rm)} {(${ VSub_Name BDHASH) (-install/worlddone)})] spids: [16777215 20693] ) ] spids: [16777215 20704] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-L)} {(${ VSub_Name BDHASH) (-rollback)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(${ VSub_Name BDHASH) (-rollback)} {(${ VSub_Name BDHASH) (-install/rollback)} ) ] spids: [16777215 20722] ) ] spids: [16777215 20738] ) (C {(mv)} {(${ VSub_Name BDHASH) (-install)} {(${ VSub_Name BDHASH) (-rollback)}) ] spids: [20628] ) spids: [20623 20627] ) (FuncDef name: install_run body: (BraceGroup children: [ (C {(echo)} {(-n)} {(DQ ('Installing updates...'))}) (AndOr ops: [Op_DPipe] children: [ (C {(install_verify)} {(${ VSub_Name BDHASH) (-install/INDEX-OLD)} {(${ VSub_Name BDHASH) (-install/INDEX-NEW)} ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_unschg)} {(${ VSub_Name BDHASH) (-install/INDEX-OLD)} {(${ VSub_Name BDHASH) (-install/INDEX-NEW)} ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_files)} {(${ VSub_Name BDHASH) (-install)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(install_setup_rollback)}) (C {(echo)} {(DQ (' done.'))}) ] spids: [20765] ) spids: [20760 20764] ) (FuncDef name: rollback_setup_rollback body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-L)} {(${ VSub_Name BDHASH) (-rollback/rollback)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(${ VSub_Name BDHASH) (-rollback/rollback)} {(rollback-tmp)}) (C {(rm)} {(-r)} {(${ VSub_Name BDHASH) (-rollback/)}) (C {(rm)} {(${ VSub_Name BDHASH) (-rollback)}) (C {(mv)} {(rollback-tmp)} {(${ VSub_Name BDHASH) (-rollback)}) ] spids: [16777215 20891] ) ] else_action: [ (C {(rm)} {(-r)} {(${ VSub_Name BDHASH) (-rollback/)}) (C {(rm)} {(${ VSub_Name BDHASH) (-rollback)}) ] spids: [20932 20953] ) ] spids: [20874] ) spids: [20869 20873] ) (FuncDef name: rollback_files body: (BraceGroup children: [ (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (C {(grep)} {(-E)} {(SQ <'/lib/.*\\.so\\.[0-9]+\\|'>)}) (C {(cut)} {(-f)} {(1)} {(-d)} {(SQ <'|'>)}) (SimpleCommand words: [{(sort)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(INDEX-NEW.libs.flist)} ) ] ) ] negated: F ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)}) (C {(grep)} {(-E)} {(SQ <'/lib/.*\\.so\\.[0-9]+\\|'>)}) (C {(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)} {(-)}) (SimpleCommand words: [{(join)} {(-t)} {(SQ <'|'>)} {(-v)} {(1)} {(-)} {(INDEX-NEW.libs.flist)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_from_index)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)}) (SimpleCommand words: [{(grep)} {(-vE)} {(SQ <'/lib/.*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD)})] ) ] negated: F ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (SimpleCommand words: [{(grep)} {(-vE)} {(SQ <'/lib/.*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_from_index)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_delete)} {(INDEX-NEW)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)}) (C {(grep)} {(-E)} {(SQ <'/lib/.*\\.so\\.[0-9]+\\|'>)}) (C {(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)} {(-)}) (SimpleCommand words: [{(join)} {(-t)} {(SQ <'|'>)} {(-)} {(INDEX-NEW.libs.flist)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_from_index)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)}) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'/lib/.*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD)})] ) ] negated: F ) (Pipeline children: [ (C {(grep)} {(-vE)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'/lib/.*\\.so\\.[0-9]+\\|'>)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) ] negated: F ) (AndOr ops: [Op_DPipe] children: [ (C {(install_delete)} {(INDEX-NEW)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-OLD)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-OLD)})] ) (SimpleCommand words: [{(grep)} {(-E)} {(SQ <'^/boot/'>)} {($ VSub_Number '$1') (/INDEX-NEW)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NEW)})] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_from_index)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_delete)} {(INDEX-NEW)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(INDEX-OLD)} {(-o)} {(-s)} {(INDEX-NEW)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(kldxref)} {(-R)} {(/boot/)}] redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) ] spids: [16777215 21410] ) ] spids: [16777215 21423] ) (C {(rm)} {(INDEX-OLD)} {(INDEX-NEW)} {(INDEX-NEW.libs.flist)}) ] spids: [20966] ) spids: [20961 20965] ) (FuncDef name: rollback_run body: (BraceGroup children: [ (C {(echo)} {(-n)} {(DQ ('Uninstalling updates...'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-L)} {(${ VSub_Name BDHASH) (-install)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-r)} {(${ VSub_Name BDHASH) (-install/)}) (C {(rm)} {(${ VSub_Name BDHASH) (-install)}) ] spids: [16777215 21485] ) ] spids: [16777215 21506] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_verify)} {(${ VSub_Name BDHASH) (-rollback/INDEX-NEW)} {(${ VSub_Name BDHASH) (-rollback/INDEX-OLD)} ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(install_unschg)} {(${ VSub_Name BDHASH) (-rollback/INDEX-NEW)} {(${ VSub_Name BDHASH) (-rollback/INDEX-OLD)} ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(rollback_files)} {(${ VSub_Name BDHASH) (-rollback)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(rollback_setup_rollback)}) (C {(echo)} {(DQ (' done.'))}) ] spids: [21450] ) spids: [21445 21449] ) (FuncDef name: IDS_compare body: (BraceGroup children: [ (SimpleCommand words: [ {(cut)} {(-f)} {(1-5) (Lit_Comma ',') (7-8)} {(-d)} {(SQ <'|'>)} {($ VSub_Number '$1')} ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.noflags)} ) ] ) (SimpleCommand words: [ {(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)} {($ VSub_Number '$1') (.noflags)} ] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Number '$1') (.sorted)} ) ] ) (Pipeline children: [ (C {(cut)} {(-f)} {(1-5) (Lit_Comma ',') (7-8)} {(-d)} {(SQ <'|'>)} {($ VSub_Number '$2')}) (C {(comm)} {(-13)} {($ VSub_Number '$1') (.noflags)} {(-)}) (C {(fgrep)} {(-v)} {(SQ <'|-|||||'>)}) (C {(sort)} {(-k)} {(1) (Lit_Comma ',') (1)} {(-t)} {(SQ <'|'>)}) (SimpleCommand words: [{(join)} {(-t)} {(SQ <'|'>)} {($ VSub_Number '$1') (.sorted)} {(-)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-NOTMATCHING)})] ) ] negated: F ) (Pipeline children: [ (ForEach iter_name: X iter_words: [{(${ VSub_Name IDSIGNOREPATHS)}] do_arg_iter: F body: (DoGroup children: [ (C {(grep)} {(-E)} {(DQ ('^') (${ VSub_Name X))} {(INDEX-NOTMATCHING)}) ] spids: [21771 21788] ) spids: [21765 21769] ) (C {(sort)} {(-u)}) (SimpleCommand words: [{(comm)} {(-13)} {(-)} {(INDEX-NOTMATCHING)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(INDEX-NOTMATCHING.tmp)} ) ] ) ] negated: F ) (C {(mv)} {(INDEX-NOTMATCHING.tmp)} {(INDEX-NOTMATCHING)}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(SQ <'|'>)} spids:[21827])] spids: [21825] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(read)} {(FPATH)} {(TYPE)} {(OWNER)} {(GROUP)} {(PERM)} {(HASH)} {(LINK)} {(P_TYPE)} {(P_OWNER)} {(P_GROUP)} {(P_PERM)} {(P_HASH)} {(P_LINK)} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name TYPE))} {(Lit_Other '=')} {(DQ (${ VSub_Name P_TYPE))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(DQ (${ VSub_Name FPATH) (' is a '))}) (Case to_match: {(DQ (${ VSub_Name P_TYPE))} arms: [ (case_arm pat_list: [{(f)}] action: [(C {(echo)} {(-n)} {(DQ ('regular file, '))})] spids: [21920 21921 21932 16777215] ) (case_arm pat_list: [{(d)}] action: [(C {(echo)} {(-n)} {(DQ ('directory, '))})] spids: [21935 21936 21947 16777215] ) (case_arm pat_list: [{(L)}] action: [(C {(echo)} {(-n)} {(DQ ('symlink, '))})] spids: [21950 21951 21962 16777215] ) ] spids: [21909 21917 21965] ) (C {(echo)} {(-n)} {(DQ ('but should be a '))}) (Case to_match: {(DQ (${ VSub_Name TYPE))} arms: [ (case_arm pat_list: [{(f)}] action: [(C {(echo)} {(-n)} {(DQ ('regular file.'))})] spids: [21988 21989 22000 16777215] ) (case_arm pat_list: [{(d)}] action: [(C {(echo)} {(-n)} {(DQ (directory.))})] spids: [22003 22004 22015 16777215] ) (case_arm pat_list: [{(L)}] action: [(C {(echo)} {(-n)} {(DQ (symlink.))})] spids: [22018 22019 22030 16777215] ) ] spids: [21977 21985 22033] ) (C {(echo)}) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [16777215 21894] ) ] spids: [16777215 22051] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name OWNER))} {(Lit_Other '=')} {(DQ (${ VSub_Name P_OWNER))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (${ VSub_Name FPATH) (' is owned by user id ') (${ VSub_Name P_OWNER) (', ') ) } ) (C {(echo)} {(DQ ('but should be owned by user id ') (${ VSub_Name OWNER) (.))} ) ] spids: [16777215 22082] ) ] spids: [16777215 22112] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name GROUP))} {(Lit_Other '=')} {(DQ (${ VSub_Name P_GROUP))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (${ VSub_Name FPATH) (' is owned by group id ') (${ VSub_Name P_GROUP) (', ') ) } ) (C {(echo)} {(DQ ('but should be owned by group id ') (${ VSub_Name GROUP) (.))} ) ] spids: [16777215 22143] ) ] spids: [16777215 22173] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (Pipeline children: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name PERM))} {(Lit_Other '=')} {(DQ (${ VSub_Name P_PERM))} {(Lit_Other ']')} ) ] negated: T ) (Pipeline children: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name TYPE))} {(Lit_Other '=')} {(DQ (L))} {(Lit_Other ']')} ) ] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (${ VSub_Name FPATH) (' has ') (${ VSub_Name P_PERM) (' permissions, ') ) } ) (C {(echo)} {(DQ ('but should have ') (${ VSub_Name PERM) (' permissions.'))} ) ] spids: [16777215 22237] ) ] spids: [16777215 22267] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name HASH))} {(Lit_Other '=')} {(DQ (${ VSub_Name P_HASH))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name TYPE))} {(Lit_Other '=')} {(DQ (L))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (${ VSub_Name FPATH) (' is a symlink to ') (${ VSub_Name P_HASH) (', ') ) } ) (C {(echo)} {(DQ ('but should be a symlink to ') (${ VSub_Name HASH) (.))} ) ] spids: [16777215 22320] ) ] spids: [16777215 22350] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name TYPE))} {(Lit_Other '=')} {(DQ (f))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (${ VSub_Name FPATH) (' has SHA256 hash ') (${ VSub_Name P_HASH) (', ') ) } ) (C {(echo)} {(DQ ('but should have SHA256 hash ') (${ VSub_Name HASH) (.))} ) ] spids: [16777215 22372] ) ] spids: [16777215 22402] ) ] spids: [16777215 22298] ) ] spids: [16777215 22405] ) ] spids: [21864 22421] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(INDEX-NOTMATCHING)})] ) (C {(rm)} {($ VSub_Number '$1')} {($ VSub_Number '$1') (.noflags)} {($ VSub_Number '$1') (.sorted)} {($ VSub_Number '$2')} {(INDEX-NOTMATCHING)} ) ] spids: [21614] ) spids: [21609 21613] ) (FuncDef name: IDS_run body: (BraceGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(workdir_init)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DAmp] children: [(C {(fetch_pick_server_init)}) (C {(fetch_pick_server)})] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (Pipeline children:[(C {(fetch_key)})] negated:T) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_pick_server)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [22494 22506] ) ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (Pipeline children:[(C {(fetch_tag)})] negated:T) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(fetch_pick_server)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) ] spids: [22526 22538] ) ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_tagsanity)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_metadata)} {(INDEX-OLD)} {(INDEX-ALL)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_filter_metadata)} {(INDEX-OLD)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_filter_metadata)} {(INDEX-ALL)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (SimpleCommand words: [{(sort)} {(INDEX-OLD)} {(INDEX-ALL)}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(INDEX-ALL.tmp)})] ) (C {(mv)} {(INDEX-ALL.tmp)} {(INDEX-ALL)}) (C {(rm)} {(INDEX-OLD)}) (C {(fetch_filter_kernel_names)} {(INDEX-ALL)} {(${ VSub_Name KERNCONF)}) (AndOr ops: [Op_DPipe] children: [ (C {(fetch_inspect_system)} {(INDEX-ALL)} {(INDEX-PRESENT)} {(/dev/null)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(IDS_compare)} {(INDEX-ALL)} {(INDEX-PRESENT)}) ] spids: [22458] ) spids: [22453 22457] ) (FuncDef name: get_params body: (BraceGroup children: [ (C {(init_params)}) (C {(parse_cmdline)} {($ VSub_At '$@')}) (C {(parse_conffile)}) (C {(default_params)}) ] spids: [22694] ) spids: [22689 22693] ) (FuncDef name: cmd_fetch body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-t)} {(0)} {(-a)} {($ VSub_Name '$NOTTYOK')} {(-eq)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [22756 22760] ) (' fetch should not ') ) } ) (C {(echo)} {(DQ ('be run non-interactively.'))}) (C {(echo)} { (DQ ('Run ') (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) left_token: <Left_Backtick '`'> spids: [22776 22780] ) (' cron instead.') ) } ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 22748] ) ] spids: [16777215 22790] ) (C {(fetch_check_params)}) (AndOr ops: [Op_DPipe] children: [(C {(fetch_run)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] ) ] spids: [22724] ) spids: [22719 22723] ) (FuncDef name: cmd_cron body: (BraceGroup children: [ (C {(fetch_check_params)}) (C {(sleep)} { (CommandSubPart command_list: (CommandList children:[(C {(jot)} {(-r)} {(1)} {(0)} {(3600)})]) left_token: <Left_Backtick '`'> spids: [22832 22842] ) } ) (AndOr ops: [Op_DPipe] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TMPFILE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(mktemp)} {(/tmp/freebsd-update.XXXXXX)})] ) left_token: <Left_Backtick '`'> spids: [22847 22851] ) } spids: [22846] ) ] spids: [22846] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe Op_DPipe] children: [ (Pipeline children: [ (SimpleCommand words: [{(fetch_run)}] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(${ VSub_Name TMPFILE)} ) ] ) ] negated: T ) (Pipeline children: [ (C {(grep)} {(-q)} {(DQ ('No updates needed'))} {(${ VSub_Name TMPFILE)}) ] negated: T ) (C {(Lit_Other '[')} {(${ VSub_Name VERBOSELEVEL)} {(Lit_Other '=')} {(DQ (debug))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(mail)} {(-s)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(hostname)})]) left_token: <Left_Backtick '`'> spids: [22915 22917] ) (' security updates') ) } {(${ VSub_Name MAILTO)} ] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(${ VSub_Name TMPFILE)} ) ] ) ] spids: [16777215 22907] ) ] spids: [16777215 22932] ) (C {(rm)} {(${ VSub_Name TMPFILE)}) ] spids: [22824] ) spids: [22819 22823] ) (FuncDef name: cmd_upgrade body: (BraceGroup children: [ (C {(upgrade_check_params)}) (AndOr ops: [Op_DPipe] children: [(C {(upgrade_run)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] ) ] spids: [22953] ) spids: [22948 22952] ) (FuncDef name: cmd_install body: (BraceGroup children: [ (C {(install_check_params)}) (AndOr ops: [Op_DPipe] children: [(C {(install_run)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] ) ] spids: [22978] ) spids: [22973 22977] ) (FuncDef name: cmd_rollback body: (BraceGroup children: [ (C {(rollback_check_params)}) (AndOr ops: [Op_DPipe] children: [(C {(rollback_run)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] ) ] spids: [23003] ) spids: [22998 23002] ) (FuncDef name: cmd_IDS body: (BraceGroup children: [ (C {(IDS_check_params)}) (AndOr ops: [Op_DPipe] children: [(C {(IDS_run)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] ) ] spids: [23028] ) spids: [23023 23027] ) (C {(export)} {(Lit_VarLike 'PATH=') (/sbin) (Lit_Other ':') (/bin) (Lit_Other ':') (/usr/sbin) (Lit_Other ':') (/usr/bin) (Lit_Other ':') (${ VSub_Name PATH) } ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$PAGER'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PAGER) op: Equal rhs: {(/usr/bin/more)} spids: [23087] ) ] spids: [23087] ) ] spids: [16777215 23084] ) ] spids: [16777215 23090] ) (C {(export)} {(Lit_VarLike 'LC_ALL=') (C)}) (C {(get_params)} {($ VSub_At '$@')}) (ForEach iter_name: COMMAND iter_words: [{(${ VSub_Name COMMANDS)}] do_arg_iter: F body: (DoGroup children:[(C {(cmd_) (${ VSub_Name COMMAND)})] spids:[23117 23125]) spids: [23111 23115] ) ] )