(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PATH) op: Equal rhs: {(/bin) (Lit_Other ':') (/usr/bin) (Lit_Other ':') (/usr/sbin)} spids: [26] ) ] spids: [26] ) (FuncDef name: display_usage body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERSION_NUMBER) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(DQ ('[') (Lit_Other '$') (']FreeBSD:'))} {($ VSub_Number '$0')} ) (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(4)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [43 67] ) } spids: [42] ) ] spids: [42] ) (C {(echo)} {(DQ ('mergemaster version ') (${ VSub_Name VERSION_NUMBER))}) (C {(echo)} {(SQ <'Usage: mergemaster [-scrvhpCP] [-a|[-iFU]] [--run-updates=always|never]'>)} ) (C {(echo)} {(SQ <' [-m /path] [-t /path] [-d] [-u N] [-w N] [-A arch] [-D /path]'>)}) (C {(echo)} {(DQ ('Options:'))}) (C {(echo)} {(DQ (' -s Strict comparison (diff every pair of files)'))}) (C {(echo)} {(DQ (' -c Use context diff instead of unified diff'))}) (C {(echo)} {(DQ (' -r Re-run on a previously cleaned directory (skip temproot creation)'))} ) (C {(echo)} {(DQ (' -v Be more verbose about the process, include additional checks'))}) (C {(echo)} {(DQ (' -a Leave all files that differ to merge by hand'))}) (C {(echo)} {(DQ (' -h Display more complete help'))}) (C {(echo)} {(SQ <' -i Automatically install files that do not exist in destination directory'>)} ) (C {(echo)} {(SQ <' -p Pre-buildworld mode, only compares crucial files'>)}) (C {(echo)} {(SQ <' -F Install files that differ only by revision control Id ($FreeBSD)'>)} ) (C {(echo)} {(SQ <' -C Compare local rc.conf variables to the defaults'>)}) (C {(echo)} {(SQ <' -P Preserve files that are overwritten'>)}) (C {(echo)} {(DQ (' -U Attempt to auto upgrade files that have not been user modified'))}) (C {(echo)} {(SQ <' ***DANGEROUS***'>)}) (C {(echo)} {(SQ <' --run-updates= Specify always or never to run newalises, pwd_mkdb, etc.'>)} ) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' -m /path/directory Specify location of source to do the make in'))}) (C {(echo)} {(DQ (' -t /path/directory Specify temp root directory'))}) (C {(echo)} { (DQ (' -d Add date and time to directory name (e.g., /var/tmp/temproot.') (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other '+') (Lit_Other '%') (m) (Lit_Other '%') (d.) (Lit_Other '%') (H.) (Lit_Other '%') (M) } ) ] ) left_token: <Left_Backtick '`'> spids: [223 235] ) (')') ) } ) (C {(echo)} {(DQ (' -u N Specify a numeric umask'))}) (C {(echo)} {(DQ (' -w N Specify a screen width in columns to sdiff'))}) (C {(echo)} {(DQ (' -A architecture Alternative architecture name to pass to make'))}) (C {(echo)} {(SQ <' -D /path/directory Specify the destination directory to install files to'>)} ) (C {(echo)} {(SQ )}) ] spids: [39] ) spids: [34 38] ) (FuncDef name: display_help body: (BraceGroup children: [ (C {(echo)} {(DQ ('* To specify a directory other than /var/tmp/temproot for the'))}) (C {(echo)} {(DQ (' temporary root environment, use -t /path/to/temp/root'))}) (C {(echo)} {(DQ ('* The -w option takes a number as an argument for the column width'))}) (C {(echo)} {(DQ (' of the screen. The default is 80.'))}) (C {(echo)} {(SQ <'* The -a option causes mergemaster to run without prompting.'>)}) ] spids: [281] ) spids: [276 280] ) (FuncDef name: merge_loop body: (BraceGroup children: [ (Case to_match: {(DQ (${ VSub_Name VERBOSE))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 348 350 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(DQ (' *** Type h at the sdiff prompt (%) to get usage help'))}) ] spids: [353 354 364 16777215] ) ] spids: [335 343 367] ) (C {(echo)} {(SQ )}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MERGE_AGAIN) op:Equal rhs:{(yes)} spids:[376])] spids: [376] ) (While cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name MERGE_AGAIN))} {(Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(cp)} {(-p)} {(DQ (${ VSub_Name COMPFILE))} {(DQ (${ VSub_Name COMPFILE) (.merged))} ) (C {(sdiff)} {(-o)} {(DQ (${ VSub_Name COMPFILE) (.merged))} {(--text)} {(--suppress-common-lines)} {(--width) (Lit_Other '=') (BracedVarSub token: <VSub_Name SCREEN_WIDTH> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(80)}) spids: [443 447] ) } { (DQ (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [453 457] ) ) } {(DQ (${ VSub_Name COMPFILE))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTALL_MERGED) op: Equal rhs: {(V)} spids: [467] ) ] spids: [467] ) (While cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name INSTALL_MERGED))} {(Lit_Other '=')} {(DQ (v))} {(-o)} {(DQ (${ VSub_Name INSTALL_MERGED))} {(Lit_Other '=')} {(DQ (V))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (" Use 'i' to install merged file"))}) (C {(echo)} {(DQ (" Use 'r' to re-do the merge"))}) (C {(echo)} {(DQ (" Use 'v' to view the merged file"))}) (C {(echo)} { (DQ (' Default is to leave the temporary file to deal with by hand')) } ) (C {(echo)} {(SQ )}) (C {(echo)} {(-n)} { (DQ ( ' *** How should I deal with the merged file? [Leave it for later] ' ) ) } ) (C {(read)} {(INSTALL_MERGED)}) (Case to_match: {(DQ (${ VSub_Name INSTALL_MERGED))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (iI) (Lit_Other ']')}] action: [ (C {(mv)} {(DQ (${ VSub_Name COMPFILE) (.merged))} {(DQ (${ VSub_Name COMPFILE))} ) (C {(echo)} {(SQ )}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (' *** Merged version of ') (${ VSub_Name COMPFILE) (' installed successfully') ) } ) ] spids: [16777215 612] ) ] else_action: [ (C {(echo)} { (DQ (' *** Problem installing ') (${ VSub_Name COMPFILE) (', it will remain to merge by hand later') ) } ) ] spids: [626 640] ) (C {(unset)} {(MERGE_AGAIN)}) ] spids: [573 576 648 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (rR) (Lit_Other ']')}] action: [(C {(rm)} {(DQ (${ VSub_Name COMPFILE) (.merged))})] spids: [651 654 667 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (vV) (Lit_Other ']')}] action: [ (C {(${ VSub_Name PAGER)} {(DQ (${ VSub_Name COMPFILE) (.merged))}) ] spids: [670 673 688 16777215] ) (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' will remain for your consideration') ) } ) (C {(unset)} {(MERGE_AGAIN)}) ] spids: [16777215 693 712 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(DQ ('invalid choice: ') (${ VSub_Name INSTALL_MERGED))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTALL_MERGED) op: Equal rhs: {(V)} spids: [729] ) ] spids: [729] ) ] spids: [715 716 733 16777215] ) ] spids: [562 570 736] ) ] spids: [504 739] ) ) ] spids: [399 742] ) ) ] spids: [332] ) spids: [327 331] ) (FuncDef name: diff_loop body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:HANDLE_COMPFILE) op:Equal rhs:{(v)} spids:[762])] spids: [762] ) (While cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name HANDLE_COMPFILE))} {(Lit_Other '=')} {(DQ (v))} {(-o)} {(DQ (${ VSub_Name HANDLE_COMPFILE))} {(Lit_Other '=')} {(DQ (V))} {(-o)} {(DQ (${ VSub_Name HANDLE_COMPFILE))} {(Lit_Other '=')} {(DQ ('NOT V'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} { (DQ (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [829 833] ) ) } {(-a)} {(-f)} {(DQ (${ VSub_Name COMPFILE))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name AUTO_UPGRADE))} {(-a)} {(-n)} {(DQ (${ VSub_Name CHANGED))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {(DQ (${ VSub_Name CHANGED))} arms: [ (case_arm pat_list: [ {(Lit_Other '*') (Lit_Other ':') (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [896 900] ) (Lit_Other ':') (Lit_Other '*') } ] spids: [891 903 905 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' has not been user modified.') ) } ) (C {(echo)} {(SQ )}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' upgraded successfully') ) } ) (C {(echo)} {(SQ )}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:AUTO_UPGRADED_FILES) op: Equal rhs: { (DQ (${ VSub_Name AUTO_UPGRADED_FILES) (' ') (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [983 987] ) ('\n') ) } spids: [974] ) ] spids: [974] ) ] spids: [16777215 950] ) ] else_action: [ (C {(echo)} { (DQ (' *** Problem upgrading ') (${ VSub_Name COMPFILE) (', it will remain to merge by hand') ) } ) ] spids: [992 1006] ) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [911 912 1012 16777215] ) ] spids: [880 888 1015] ) ] spids: [16777215 877] ) ] spids: [16777215 1018] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name HANDLE_COMPFILE))} {(Lit_Other '=')} {(DQ (v))} {(-o)} {(DQ (${ VSub_Name HANDLE_COMPFILE))} {(Lit_Other '=')} {(DQ (V))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (SQ < ' ====================================================================== ' > ) } ) (C {(echo)} {(SQ )}) (Pipeline children: [ (Subshell child: (CommandList children: [ (C {(echo)} { (DQ (' *** Displaying differences between ') (${ VSub_Name COMPFILE) (' and installed version:') ) } ) (C {(echo)} {(SQ )}) (C {(diff)} {(${ VSub_Name DIFF_FLAG)} {(${ VSub_Name DIFF_OPTIONS)} { (DQ (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [1110 1114] ) ) } {(DQ (${ VSub_Name COMPFILE))} ) ] ) spids: [1076 1124] ) (C {(${ VSub_Name PAGER)}) ] negated: False ) (C {(echo)} {(SQ )}) ] spids: [16777215 1054] ) ] spids: [16777215 1139] ) ] spids: [16777215 849] ) ] else_action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' *** There is no installed version of ') (${ VSub_Name COMPFILE))} ) (C {(echo)} {(SQ )}) (Case to_match: {(DQ (${ VSub_Name AUTO_INSTALL))} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (C {(echo)} {(SQ )}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' installed successfully') ) } ) (C {(echo)} {(SQ )}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:AUTO_INSTALLED_FILES) op: Equal rhs: { (DQ (${ VSub_Name AUTO_INSTALLED_FILES) (' ') (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [1240 1244] ) ('\n') ) } spids: [1231] ) ] spids: [1231] ) ] spids: [16777215 1207] ) ] else_action: [ (C {(echo)} { (DQ (' *** Problem installing ') (${ VSub_Name COMPFILE) (', it will remain to merge by hand') ) } ) ] spids: [1249 1263] ) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [1178 1187 1269 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NO_INSTALLED) op: Equal rhs: {(yes)} spids: [1276] ) ] spids: [1276] ) ] spids: [1272 1273 1280 16777215] ) ] spids: [1167 1175 1283] ) ] spids: [1142 1286] ) (C {(echo)} {(DQ (" Use 'd' to delete the temporary ") (${ VSub_Name COMPFILE))}) (C {(echo)} {(DQ (" Use 'i' to install the temporary ") (${ VSub_Name COMPFILE))}) (Case to_match: {(DQ (${ VSub_Name NO_INSTALLED))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} {(DQ (" Use 'm' to merge the temporary and installed versions"))} ) (C {(echo)} {(DQ (" Use 'v' to view the diff results again"))}) ] spids: [16777215 1323 1340 16777215] ) ] spids: [1310 1318 1343] ) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' Default is to leave the temporary file to deal with by hand'))}) (C {(echo)} {(SQ )}) (C {(echo)} {(-n)} {(DQ ('How should I deal with this? [Leave it for later] '))}) (C {(read)} {(HANDLE_COMPFILE)}) (Case to_match: {(DQ (${ VSub_Name HANDLE_COMPFILE))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (dD) (Lit_Other ']')}] action: [ (C {(rm)} {(DQ (${ VSub_Name COMPFILE))}) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' *** Deleting ') (${ VSub_Name COMPFILE))}) ] spids: [1391 1394 1422 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (iI) (Lit_Other ']')}] action: [ (C {(echo)} {(SQ )}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' installed successfully') ) } ) ] spids: [16777215 1448] ) ] else_action: [ (C {(echo)} { (DQ (' *** Problem installing ') (${ VSub_Name COMPFILE) (', it will remain to merge by hand') ) } ) ] spids: [1462 1476] ) ] spids: [1425 1428 1479 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (mM) (Lit_Other ']')}] action: [ (Case to_match: {(DQ (${ VSub_Name NO_INSTALLED))} arms: [ (case_arm pat_list: [{(SQ )}] action: [(C {(merge_loop)})] spids: [16777215 1501 1511 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (' *** There is no installed version of ') (${ VSub_Name COMPFILE) ) } ) (C {(echo)} {(SQ )}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HANDLE_COMPFILE) op: Equal rhs: {(DQ ('NOT V'))} spids: [1540] ) ] spids: [1540] ) ] spids: [1514 1515 1546 16777215] ) ] spids: [1488 1496 1549] ) ] spids: [1482 1485 1555 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (vV) (Lit_Other ']')}] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [1558 1561 1567 16777215] ) (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' will remain for your consideration') ) } ) ] spids: [16777215 1572 1592 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(DQ ('invalid choice: ') (${ VSub_Name HANDLE_COMPFILE))}) (C {(echo)} {(SQ )}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HANDLE_COMPFILE) op: Equal rhs: {(DQ ('NOT V'))} spids: [1619] ) ] spids: [1619] ) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [1595 1596 1628 16777215] ) ] spids: [1380 1388 1631] ) ] spids: [816 1637] ) ) (C {(unset)} {(NO_INSTALLED)}) (C {(echo)} {(SQ )}) (Case to_match: {(DQ (${ VSub_Name VERBOSE))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 1664 1666 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(sleep)} {(3)})] spids: [1669 1670 1678 16777215] ) ] spids: [1651 1659 1681] ) ] spids: [758] ) spids: [753 757] ) (FuncDef name: press_to_continue body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:DISCARD) op:Equal spids:[1696])] spids: [1694] ) (C {(echo)} {(-n)} {(SQ <' *** Press the [Enter] or [Return] key to continue '>)}) (C {(read)} {(DISCARD)}) ] spids: [1691] ) spids: [1686 1690] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEMPROOT) op: Equal rhs: {(SQ </var/tmp/temproot>)} spids: [1721] ) ] spids: [1721] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(/etc/mergemaster.rc)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(.)} {(/etc/mergemaster.rc)})] spids: [16777215 1744] ) ] spids: [16777215 1751] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(DQ ($ VSub_Name '$HOME') (/.mergemasterrc))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(.)} {(DQ ($ VSub_Name '$HOME') (/.mergemasterrc))})] spids: [16777215 1774] ) ] spids: [16777215 1784] ) (ForEach iter_name: var iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Name '$var'))} arms: [ (case_arm pat_list: [{(--run-updates) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RUN_UPDATES) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} { (BracedVarSub token: <VSub_Name var> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {('--run-updates=')} ) spids: [1820 1824] ) } ) (C {(tr)} {(Lit_Other '[') (Lit_Other ':') (upper) (Lit_Other ':') (Lit_Other ']') } {(Lit_Other '[') (Lit_Other ':') (lower) (Lit_Other ':') (Lit_Other ']')} ) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [1817 1841] ) } spids: [1816] ) ] spids: [1816] ) ] spids: [1811 1813 1844 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:newopts) op: Equal rhs: {(DQ ($ VSub_Name '$newopts') (' ') ($ VSub_Name '$var'))} spids: [1851] ) ] spids: [1851] ) ] spids: [1847 1848 1859 16777215] ) ] spids: [1802 1808 1862] ) ] spids: [1799 1864] ) spids: [1792 1797] ) (C {(set)} {(--)} {($ VSub_Name '$newopts')}) (C {(unset)} {(var)} {(newopts)}) (While cond: [ (Sentence child: (C {(getopts)} {(DQ (':ascrvhipCPm:t:du:w:D:A:FU'))} {(COMMAND_LINE_ARGUMENT)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(DQ (${ VSub_Name COMMAND_LINE_ARGUMENT))} arms: [ (case_arm pat_list: [{(A)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARCHSTRING) op: Equal rhs: {(SQ <'TARGET_ARCH='>) (${ VSub_Name OPTARG)} spids: [1916] ) ] spids: [1916] ) ] spids: [1912 1913 1925 16777215] ) (case_arm pat_list: [{(F)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FREEBSD_ID) op: Equal rhs: {(yes)} spids: [1932] ) ] spids: [1932] ) ] spids: [1928 1929 1936 16777215] ) (case_arm pat_list: [{(U)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:AUTO_UPGRADE) op: Equal rhs: {(yes)} spids: [1943] ) ] spids: [1943] ) ] spids: [1939 1940 1947 16777215] ) (case_arm pat_list: [{(s)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STRICT) op: Equal rhs: {(yes)} spids: [1954] ) ] spids: [1954] ) (C {(unset)} {(DIFF_OPTIONS)}) ] spids: [1950 1951 1963 16777215] ) (case_arm pat_list: [{(c)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIFF_FLAG) op: Equal rhs: {(SQ <-c>)} spids: [1970] ) ] spids: [1970] ) ] spids: [1966 1967 1976 16777215] ) (case_arm pat_list: [{(r)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RERUN) op: Equal rhs: {(yes)} spids: [1983] ) ] spids: [1983] ) ] spids: [1979 1980 1987 16777215] ) (case_arm pat_list: [{(v)}] action: [ (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERBOSE) op: Equal rhs: {(yes)} spids: [2009] ) ] spids: [2009] ) ] spids: [16777215 2007 2012 16777215] ) ] spids: [1994 2002 2015] ) ] spids: [1990 1991 2018 16777215] ) (case_arm pat_list: [{(a)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:AUTO_RUN) op: Equal rhs: {(yes)} spids: [2025] ) ] spids: [2025] ) (C {(unset)} {(VERBOSE)}) ] spids: [2021 2022 2034 16777215] ) (case_arm pat_list: [{(h)}] action: [(C {(display_usage)}) (C {(display_help)}) (C {(exit)} {(0)})] spids: [2037 2038 2052 16777215] ) (case_arm pat_list: [{(i)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:AUTO_INSTALL) op: Equal rhs: {(yes)} spids: [2059] ) ] spids: [2059] ) ] spids: [2055 2056 2063 16777215] ) (case_arm pat_list: [{(C)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMP_CONFS) op: Equal rhs: {(yes)} spids: [2070] ) ] spids: [2070] ) ] spids: [2066 2067 2074 16777215] ) (case_arm pat_list: [{(P)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PRESERVE_FILES) op: Equal rhs: {(yes)} spids: [2081] ) ] spids: [2081] ) ] spids: [2077 2078 2085 16777215] ) (case_arm pat_list: [{(p)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PRE_WORLD) op: Equal rhs: {(yes)} spids: [2092] ) ] spids: [2092] ) (C {(unset)} {(COMP_CONFS)}) (C {(unset)} {(AUTO_RUN)}) ] spids: [2088 2089 2106 16777215] ) (case_arm pat_list: [{(m)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SOURCEDIR) op: Equal rhs: {(${ VSub_Name OPTARG)} spids: [2113] ) ] spids: [2113] ) ] spids: [2109 2110 2119 16777215] ) (case_arm pat_list: [{(t)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEMPROOT) op: Equal rhs: {(${ VSub_Name OPTARG)} spids: [2126] ) ] spids: [2126] ) ] spids: [2122 2123 2132 16777215] ) (case_arm pat_list: [{(d)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEMPROOT) op: Equal rhs: {(${ VSub_Name TEMPROOT) (.) (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other '+') (Lit_Other '%') (m) (Lit_Other '%') (d.) (Lit_Other '%') (H.) (Lit_Other '%') (M) } ) ] ) left_token: <Left_Backtick '`'> spids: [2144 2156] ) } spids: [2139] ) ] spids: [2139] ) ] spids: [2135 2136 2159 16777215] ) (case_arm pat_list: [{(u)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NEW_UMASK) op: Equal rhs: {(${ VSub_Name OPTARG)} spids: [2166] ) ] spids: [2166] ) ] spids: [2162 2163 2172 16777215] ) (case_arm pat_list: [{(w)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCREEN_WIDTH) op: Equal rhs: {(${ VSub_Name OPTARG)} spids: [2179] ) ] spids: [2179] ) ] spids: [2175 2176 2185 16777215] ) (case_arm pat_list: [{(D)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DESTDIR) op: Equal rhs: {(${ VSub_Name OPTARG)} spids: [2192] ) ] spids: [2192] ) ] spids: [2188 2189 2198 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(display_usage)}) (C {(exit)} {(1)})] spids: [2201 2202 2213 16777215] ) ] spids: [1901 1909 2216] ) ] spids: [1898 2218] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$AUTO_RUN'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$FREEBSD_ID'))} {(-o)} {(-n)} {(DQ ($ VSub_Name '$AUTO_UPGRADE'))} {(-o)} {(-n)} {(DQ ($ VSub_Name '$AUTO_INSTALL'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('*** You have included the -a option along with one or more options'))} ) (C {(echo)} {(SQ <' that indicate that you wish mergemaster to actually make updates'>)} ) (C {(echo)} {(SQ <' (-F, -U, or -i), however these options are not compatible.'>)} ) (C {(echo)} {(SQ <' Please read mergemaster(8) for more information.'>)}) (C {(echo)} {(SQ )}) (C {(exit)} {(1)}) ] spids: [16777215 2266] ) ] spids: [16777215 2314] ) ] spids: [16777215 2234] ) ] spids: [16777215 2316] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MTREEDB) op: Equal rhs: { (BracedVarSub token: <VSub_Name MTREEDB> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(${ VSub_Name DESTDIR) (Lit_Slash /) (var) (Lit_Slash /) (db)} ) spids: [2326 2336] ) } spids: [2325] ) ] spids: [2325] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MTREEFILE) op: Equal rhs: {(DQ (${ VSub_Name MTREEDB) (/mergemaster.mtree))} spids: [2338] ) ] spids: [2338] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name PRESERVE_FILES))} {(-a)} {(-z)} {(DQ (${ VSub_Name PRESERVE_FILES_DIR))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PRESERVE_FILES_DIR) op: Equal rhs: {(/var/tmp/mergemaster/preserved-files-) (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other '+') (Lit_Other '%') (y) (Lit_Other '%') (m) (Lit_Other '%') (d-) (Lit_Other '%') (H) (Lit_Other '%') (M) (Lit_Other '%') (S) } ) ] ) left_token: <Left_Backtick '`'> spids: [2380 2396] ) } spids: [2378] ) ] spids: [2378] ) (C {(mkdir)} {(-p)} {(${ VSub_Name PRESERVE_FILES_DIR)}) ] spids: [16777215 2375] ) ] spids: [16777215 2407] ) (Case to_match: {(DQ (${ VSub_Name AUTO_UPGRADE))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 2425 2427 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-s)} {(DQ (${ VSub_Name MTREEFILE))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('*** Unable to find mtree database (') (${ VSub_Name MTREEFILE) (').'))} ) (C {(echo)} {(DQ (' Skipping auto-upgrade on this run.'))}) (C {(echo)} {(DQ (' It will be created for the next run when this one is complete.'))} ) (C {(echo)} {(SQ )}) (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [(C {(press_to_continue)})] spids: [16777215 2506 2512 16777215] ) ] spids: [2493 2501 2515] ) (C {(unset)} {(AUTO_UPGRADE)}) ] spids: [16777215 2453] ) ] spids: [16777215 2523] ) ] spids: [2432 2433 2526 16777215] ) ] spids: [2413 2421 2528] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name DESTDIR) (/etc/fstab))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(grep)} {(-q)} {(nodev)} {(${ VSub_Name DESTDIR) (/etc/fstab)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ ("*** You have the deprecated 'nodev' option in ") (${ VSub_Name DESTDIR) (/etc/fstab.) ) } ) (C {(echo)} {(DQ (' This can prevent the filesystem from being mounted on reboot.'))} ) (C {(echo)} {(DQ (' Please update your fstab before continuing.'))}) (C {(echo)} {(DQ (' See fstab(5) for more information.'))}) (C {(echo)} {(SQ )}) (C {(exit)} {(1)}) ] spids: [16777215 2564] ) ] spids: [16777215 2616] ) ] spids: [16777215 2547] ) ] spids: [16777215 2618] ) (C {(echo)} {(SQ )}) (Case to_match: {(DQ (${ VSub_Name DONT_CHECK_PAGER))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (FuncDef name: check_pager body: (BraceGroup children: [ (While cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [ {(type)} { (DQ (BracedVarSub token: <VSub_Name PAGER> suffix_op: (StringUnary op_id: VOp1_DPercent arg_word: {(' *')} ) spids: [2662 2666] ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [2669] ) ] ) ] negated: True ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(echo)} { (DQ (" *** Your PAGER environment variable specifies '") (${ VSub_Name PAGER) ("', but") ) } ) (C {(echo)} { (DQ (' due to the limited PATH that I use for security reasons,')) } ) (C {(echo)} {(DQ (' I cannot execute it. So, what would you like to do?'))} ) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (" Use 'e' to exit mergemaster and fix your PAGER variable"))} ) (C {(echo)} {(DQ (" Use 'l' to set PAGER to 'less' for this run"))}) (C {(echo)} {(DQ (" Use 'm' to use plain old 'more' as your PAGER for this run"))} ) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' or you may type an absolute path to PAGER for this run'))} ) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (" Default is to use plain old 'more' "))}) (C {(echo)} {(SQ )}) (C {(echo)} {(-n)} {(DQ ("What should I do? [Use 'more'] "))}) (C {(read)} {(FIXPAGER)}) (Case to_match: {(DQ (${ VSub_Name FIXPAGER))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (eE) (Lit_Other ']')}] action: [(C {(exit)} {(0)})] spids: [2786 2789 2797 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (lL) (Lit_Other ']')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PAGER) op: Equal rhs: {(less)} spids: [2806] ) ] spids: [2806] ) ] spids: [2800 2803 2810 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (mM) (Lit_Other ']')} {(SQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PAGER) op: Equal rhs: {(more)} spids: [2822] ) ] spids: [2822] ) ] spids: [2813 2819 2826 16777215] ) (case_arm pat_list: [{(/) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PAGER) op: Equal rhs: {(DQ ($ VSub_Name '$FIXPAGER'))} spids: [2834] ) ] spids: [2834] ) ] spids: [2829 2831 2840 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('invalid choice: ') (${ VSub_Name FIXPAGER))}) ] spids: [2843 2844 16777215 2863] ) ] spids: [2775 2783 2863] ) (C {(echo)} {(SQ )}) ] spids: [2673 2872] ) ) ] spids: [2652] ) spids: [2647 2651] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name PAGER))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(check_pager)})] spids: [16777215 2892] ) ] spids: [16777215 2898] ) ] spids: [16777215 2645 2901 16777215] ) ] spids: [2633 2641 2903] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PAGER) op: Equal rhs: { (BracedVarSub token: <VSub_Name PAGER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(more)}) spids: [2916 2920] ) } spids: [2915] ) ] spids: [2915] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name VERBOSE))} {(-a)} {(KW_Bang '!')} {(DQ (${ VSub_Name PAGER))} {(Lit_Other '=')} {(DQ (more))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (' *** You have ') (${ VSub_Name PAGER) (' defined as your pager so we will use that') ) } ) (C {(echo)} {(SQ )}) (C {(sleep)} {(3)}) ] spids: [16777215 2954] ) ] spids: [16777215 2978] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIFF_FLAG) op: Equal rhs: { (BracedVarSub token: <VSub_Name DIFF_FLAG> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(-u)}) spids: [2988 2992] ) } spids: [2987] ) ] spids: [2987] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SOURCEDIR) op: Equal rhs: { (BracedVarSub token: <VSub_Name SOURCEDIR> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (usr) (Lit_Slash /) (src)} ) spids: [3002 3009] ) } spids: [3001] ) ] spids: [3001] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(${ VSub_Name SOURCEDIR) (/Makefile.inc1)} {(-a)} {(-f)} {(${ VSub_Name SOURCEDIR) (/../Makefile.inc1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (' *** The source directory you specified (') (${ VSub_Name SOURCEDIR) (')'))} ) (C {(echo)} {(DQ (' will be reset to ') (${ VSub_Name SOURCEDIR) (/..))}) (C {(echo)} {(SQ )}) (C {(sleep)} {(3)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SOURCEDIR) op: Equal rhs: {(${ VSub_Name SOURCEDIR) (/..)} spids: [3074] ) ] spids: [3074] ) ] spids: [16777215 3038] ) ] spids: [16777215 3080] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SOURCEDIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(realpath)} {(DQ ($ VSub_Name '$SOURCEDIR'))})] ) left_token: <Left_CommandSub '$('> spids: [3083 3089] ) } spids: [3082] ) ] spids: [3082] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MM_MAKE) op: Equal rhs: { (DQ ('make ') (${ VSub_Name ARCHSTRING) (' -m ') (${ VSub_Name SOURCEDIR) ('/share/mk -DNO_FILEMON') ) } spids: [3095] ) ] spids: [3095] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name AUTO_UPGRADE))} {(-a)} {(-s)} {(DQ (${ VSub_Name MTREEFILE))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(mtree)} {(-F)} {(freebsd9)} {(-c)} {(-p)} {(/var/empty/)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [3164] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [3168] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MTREE_FLAVOR) op: Equal rhs: {(DQ ('-F freebsd9'))} spids: [3175] ) ] spids: [3175] ) ] spids: [16777215 3172] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MTREE_FLAVOR) op: Equal rhs: {(SQ )} spids: [3184] ) ] spids: [3184] ) ] spids: [3181 3187] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHANGED) op: Equal rhs: {(Lit_Other ':')} spids: [3190] ) ] spids: [3190] ) (ForEach iter_name: file iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {(mtree)} {(-eqL)} {(${ VSub_Name MTREE_FLAVOR)} {(-f)} {(${ VSub_Name MTREEFILE)} {(-p)} {(${ VSub_Name DESTDIR) (/)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [3224] ) ] ) (C {(awk)} {(SQ <'($2 == "changed") {print $1}'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [3200 3234] ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name DESTDIR) (/) ($ VSub_Name '$file'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHANGED) op: Equal rhs: { (DQ (${ VSub_Name CHANGED) (${ VSub_Name DESTDIR) (/) (${ VSub_Name file) (':') ) } spids: [3260] ) ] spids: [3260] ) ] spids: [16777215 3257] ) ] spids: [16777215 3276] ) ] spids: [3237 3279] ) spids: [3199 3235] ) (AndOr children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$CHANGED'))} {(Lit_Other '=')} {(SQ <':'>)} {(Lit_Other ']')} ) (C {(unset)} {(CHANGED)}) ] op_id: Op_DAmp ) ] spids: [16777215 3143] ) ] spids: [16777215 3302] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-t)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:w) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(tput)} {(columns)})]) left_token: <Left_Backtick '`'> spids: [3326 3330] ) } spids: [3325] ) ] spids: [3325] ) (Case to_match: {(DQ (${ VSub_Name w))} arms: [ (case_arm pat_list:[{(0)} {(SQ )}] spids:[3344 3348 3350 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Case to_match: {(DQ (${ VSub_Name SCREEN_WIDTH))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCREEN_WIDTH) op: Equal rhs: {(DQ (${ VSub_Name w))} spids: [3375] ) ] spids: [3375] ) ] spids: [16777215 3373 3382 16777215] ) (case_arm pat_list: [{(DQ (${ VSub_Name w))}] spids: [3386 3390 3392 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(-n)} { (DQ ('*** You entered ') (${ VSub_Name SCREEN_WIDTH) (' as your screen width, but stty ') ) } ) (C {(echo)} {(DQ ('thinks it is ') (${ VSub_Name w) (.))}) (C {(echo)} {(SQ )}) (C {(echo)} {(-n)} {(DQ ('What would you like to use? [') (${ VSub_Name w) ('] '))} ) (C {(read)} {(SCREEN_WIDTH)}) (Case to_match: {(DQ (${ VSub_Name SCREEN_WIDTH))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCREEN_WIDTH) op: Equal rhs: {(DQ (${ VSub_Name w))} spids: [3465] ) ] spids: [3465] ) ] spids: [16777215 3463 3472 16777215] ) ] spids: [3450 3458 3475] ) ] spids: [3398 3399 3478 16777215] ) ] spids: [3360 3368 3481] ) ] spids: [3356 3357 16777215 3484] ) ] spids: [3333 3341 3484] ) ] spids: [16777215 3322] ) ] spids: [16777215 3486] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ID_TAG) op:Equal rhs:{(FreeBSD)} spids:[3495])] spids: [3495] ) (FuncDef name: delete_temproot body: (BraceGroup children: [ (SimpleCommand words: [{(rm)} {(-rf)} {(DQ (${ VSub_Name TEMPROOT))}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[3517])] ) (SimpleCommand words: [{(chflags)} {(-R)} {(0)} {(DQ (${ VSub_Name TEMPROOT))}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[3533])] ) (AndOr children: [ (C {(rm)} {(-rf)} {(DQ (${ VSub_Name TEMPROOT))}) (BraceGroup children: [ (Sentence child: (C {(echo)} {(DQ ('*** Unable to delete ') (${ VSub_Name TEMPROOT))}) terminator: <Op_Semi ';'> ) (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ';'>) ] spids: [3549] ) ] op_id: Op_DPipe ) ] spids: [3504] ) spids: [3499 3503] ) (Case to_match: {(DQ (${ VSub_Name RERUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_TEMP_ROOT) op: Equal rhs: {(yes)} spids: [3598] ) ] spids: [3598] ) (While cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name TEST_TEMP_ROOT))} {(Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name TEMPROOT))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ( '*** The directory specified for the temporary root environment,' ) ) } ) (C {(echo)} { (DQ (' ') (${ VSub_Name TEMPROOT) (', exists. This can be a security risk if untrusted') ) } ) (C {(echo)} {(DQ (' users have access to the system.'))}) (C {(echo)} {(SQ )}) (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} { (DQ (" Use 'd' to delete the old ") (${ VSub_Name TEMPROOT) (' and continue') ) } ) (C {(echo)} {(DQ (" Use 't' to select a new temporary root directory"))} ) (C {(echo)} {(DQ (" Use 'e' to exit mergemaster"))}) (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (' Default is to use ') (${ VSub_Name TEMPROOT) (' as is')) } ) (C {(echo)} {(SQ )}) (C {(echo)} {(-n)} { (DQ ('How should I deal with this? [Use the existing ') (${ VSub_Name TEMPROOT) ('] ') ) } ) (C {(read)} {(DELORNOT)}) (Case to_match: {(DQ (${ VSub_Name DELORNOT))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (dD) (Lit_Other ']')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (' *** Deleting the old ') (${ VSub_Name TEMPROOT) ) } ) (C {(echo)} {(SQ )}) (C {(delete_temproot)}) (C {(unset)} {(TEST_TEMP_ROOT)}) ] spids: [3767 3770 3803 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (tT) (Lit_Other ']')}] action: [ (C {(echo)} { (DQ ( ' *** Enter new directory name for temporary root environment' ) ) } ) (C {(read)} {(TEMPROOT)}) ] spids: [3806 3809 3824 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (eE) (Lit_Other ']')}] action: [(C {(exit)} {(0)})] spids: [3827 3830 3838 16777215] ) (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (' *** Leaving ') (${ VSub_Name TEMPROOT) (' intact') ) } ) (C {(echo)} {(SQ )}) (C {(unset)} {(TEST_TEMP_ROOT)}) ] spids: [16777215 3843 3874 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('invalid choice: ') (${ VSub_Name DELORNOT))} ) (C {(echo)} {(SQ )}) ] spids: [3877 3878 3903 16777215] ) ] spids: [3756 3764 3906] ) ] spids: [16777215 3686 3909 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEMPROOT) op: Equal rhs: {(/var/tmp/temproot.) (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other '+') (Lit_Other '%') (m) (Lit_Other '%') (d.) (Lit_Other '%') (H.) (Lit_Other '%') (M.) (Lit_Other '%') (S) } ) ] ) left_token: <Left_Backtick '`'> spids: [3926 3940] ) } spids: [3924] ) ] spids: [3924] ) ] spids: [3912 3913 3943 16777215] ) ] spids: [3673 3681 3946] ) ] spids: [16777215 3639] ) ] else_action: [(C {(unset)} {(TEST_TEMP_ROOT)})] spids: [3949 3957] ) ] spids: [3621 3960] ) ) (C {(echo)} {(DQ ('*** Creating the temporary root environment in ') (${ VSub_Name TEMPROOT))} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name TEMPROOT))}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ (' *** ') (${ VSub_Name TEMPROOT) (' ready for use'))})] spids: [16777215 3988] ) ] spids: [16777215 4002] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name TEMPROOT))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' *** FATAL ERROR: Cannot create ') (${ VSub_Name TEMPROOT))}) (C {(echo)} {(SQ )}) (C {(exit)} {(1)}) ] spids: [16777215 4023] ) ] spids: [16777215 4053] ) (C {(echo)} {(DQ (' *** Creating and populating directory structure in ') (${ VSub_Name TEMPROOT))} ) (C {(echo)} {(SQ )}) (Case to_match: {(DQ (${ VSub_Name VERBOSE))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 4087 4089 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(press_to_continue)})] spids: [4092 4093 4099 16777215] ) ] spids: [4074 4082 4102] ) (Case to_match: {(DQ (${ VSub_Name PRE_WORLD))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (AndOr children: [ (BraceGroup children: [ (AndOr children: [ (C {(cd)} {(${ VSub_Name SOURCEDIR)}) (Case to_match: {(DQ (${ VSub_Name DESTDIR))} arms: [ (case_arm pat_list: [{(SQ )}] spids: [16777215 4146 4148 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (SimpleCommand words: [ {(${ VSub_Name MM_MAKE)} {(Lit_VarLike 'DESTDIR=') (${ VSub_Name DESTDIR)} {(distrib-dirs)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [4166] ) ] ) ] spids: [4151 4152 4170 16777215] ) ] spids: [4133 4141 4173] ) ] op_id: Op_DAmp ) (Sentence child: (AndOr children: [ (SimpleCommand words: [ {(${ VSub_Name MM_MAKE)} {(Lit_VarLike 'DESTDIR=') (${ VSub_Name TEMPROOT)} {(distrib-dirs)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [4187] ) ] ) (AndOr children: [ (SimpleCommand words: [ {(${ VSub_Name MM_MAKE)} {(_obj)} {(Lit_VarLike 'SUBDIR_OVERRIDE=') (etc)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [4202] ) ] ) (AndOr children: [ (SimpleCommand words: [ {(${ VSub_Name MM_MAKE)} {(everything)} {(Lit_VarLike 'SUBDIR_OVERRIDE=') (etc)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [4217] ) ] ) (SimpleCommand words: [ {(${ VSub_Name MM_MAKE)} {(Lit_VarLike 'DESTDIR=') (${ VSub_Name TEMPROOT)} {(distribution)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [4234] ) ] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [4122] ) (BraceGroup children: [ (Sentence child: (C {(echo)} {(SQ )}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(echo)} { (DQ (" *** FATAL ERROR: Cannot 'cd' to ") (${ VSub_Name SOURCEDIR) (' and install files to') ) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(echo)} {(DQ (' the temproot environment'))}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(echo)} {(SQ )}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(exit)} {(1)}) terminator: <Op_Semi ';'> ) ] spids: [4242] ) ] op_id: Op_DPipe ) ] spids: [16777215 4119 4285 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (AndOr children: [ (BraceGroup children: [ (Sentence child: (AndOr children: [ (C {(mkdir)} {(-p)} {(${ VSub_Name TEMPROOT) (/etc)}) (AndOr children: [ (C {(cp)} {(-p)} {(${ VSub_Name SOURCEDIR) (/etc/master.passwd)} {(${ VSub_Name TEMPROOT) (/etc)} ) (C {(install)} {(-p)} {(-o)} {(root)} {(-g)} {(wheel)} {(-m)} {(0644)} {(${ VSub_Name SOURCEDIR) (/etc/group)} {(${ VSub_Name TEMPROOT) (/etc)} ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [4296] ) (BraceGroup children: [ (Sentence child: (C {(echo)} {(SQ )}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(echo)} { (SQ < ' *** FATAL ERROR: Cannot copy files to the temproot environment' > ) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(echo)} {(SQ )}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(exit)} {(1)}) terminator: <Op_Semi ';'> ) ] spids: [4358] ) ] op_id: Op_DPipe ) ] spids: [4288 4289 4389 16777215] ) ] spids: [4106 4114 4392] ) (Case to_match: {(DQ (${ VSub_Name VERBOSE))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 4421 4423 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(SQ <' *** The following files exist only in the installed version of'>)} ) (C {(echo)} { (DQ (' ') (${ VSub_Name DESTDIR) ('/etc. In the vast majority of cases these files') ) } ) (C {(echo)} {(SQ <' are necessary parts of the system and should not be deleted.'>)} ) (C {(echo)} {(SQ <' However because these files are not updated by this process you'>)} ) (C {(echo)} {(SQ <' might want to verify their status before rebooting your system.'>)} ) (C {(echo)} {(SQ )}) (C {(press_to_continue)}) (Pipeline children: [ (C {(diff)} {(-qr)} {(${ VSub_Name DESTDIR) (/etc)} {(${ VSub_Name TEMPROOT) (/etc)} ) (C {(grep)} {(DQ ('^Only in ') (${ VSub_Name DESTDIR) (/etc))}) (C {(${ VSub_Name PAGER)}) ] negated: False ) (C {(echo)} {(SQ )}) (C {(press_to_continue)}) ] spids: [4426 4427 4526 16777215] ) ] spids: [4408 4416 4529] ) (Case to_match: {(DQ (${ VSub_Name IGNORE_MOTD))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 4546 4548 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('*** You have the IGNORE_MOTD option set in your mergemaster rc file.'))} ) (C {(echo)} {(DQ (' This option is deprecated in favor of the IGNORE_FILES option.'))} ) (C {(echo)} {(DQ (' Please update your rc file accordingly.'))}) (C {(echo)} {(SQ )}) (C {(exit)} {(1)}) ] spids: [4551 4552 4593 16777215] ) ] spids: [4533 4541 4596] ) (ForEach iter_name: file iter_words: [{(${ VSub_Name IGNORE_FILES)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(test)} {(-e)} {(${ VSub_Name TEMPROOT) (/) (${ VSub_Name file)}) (C {(unlink)} {(${ VSub_Name TEMPROOT) (/) (${ VSub_Name file)}) ] op_id: Op_DAmp ) ] spids: [4615 4643] ) spids: [4609 4613] ) (C {(rm)} {(-f)} {(${ VSub_Name TEMPROOT) (/etc/) (Lit_Other '*') (.db)} {(${ VSub_Name TEMPROOT) (/etc/passwd)} {(${ VSub_Name TEMPROOT) (/var/db/services.db)} ) (SimpleCommand words: [{(find)} {(${ VSub_Name TEMPROOT) (/usr/obj)} {(-type)} {(f)} {(-delete)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[4705])] ) (SimpleCommand words: [{(find)} {(${ VSub_Name TEMPROOT) (/usr)} {(-type)} {(l)} {(-delete)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[4731])] ) (SimpleCommand words: [{(find)} {(${ VSub_Name TEMPROOT)} {(-type)} {(f)} {(-size)} {(0)} {(-delete)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[4751])] ) (SimpleCommand words: [ {(find)} {(-d)} {(${ VSub_Name TEMPROOT)} {(-type)} {(d)} {(-empty)} {(-mindepth)} {(1)} {(-delete)} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[4775])] ) (Case to_match: {(DQ (${ VSub_Name PRE_WORLD))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MTREENEW) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(mktemp)} {(-t)} {(mergemaster.mtree)})] ) left_token: <Left_Backtick '`'> spids: [4800 4806] ) } spids: [4799] ) ] spids: [4799] ) (SimpleCommand words: [ {(mtree)} {(-nci)} {(-p)} {(${ VSub_Name TEMPROOT)} {(-k)} {(size) (Lit_Comma ',') (md5digest)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(${ VSub_Name MTREENEW)} spids: [4825] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [4831] ) ] ) ] spids: [16777215 4797 4835 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] spids: [4838 4839 4849 16777215] ) ] spids: [4784 4792 4852] ) ] spids: [16777215 3583 4855 16777215] ) ] spids: [3571 3579 4860] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name NEW_UMASK))} {(-a)} {(-z)} {(DQ (${ VSub_Name AUTO_RUN))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:USER_UMASK) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(umask)})]) left_token: <Left_Backtick '`'> spids: [4905 4907] ) } spids: [4904] ) ] spids: [4904] ) (Case to_match: {(DQ (${ VSub_Name USER_UMASK))} arms: [ (case_arm pat_list: [{(0022)} {(022)}] spids: [4921 4924 4926 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (' *** Your umask is currently set to ') (${ VSub_Name USER_UMASK) ('. By default, this script') ) } ) (C {(echo)} {(DQ (' installs all files with the same user, group and modes that'))} ) (C {(echo)} { (DQ (' they are created with by ') (${ VSub_Name SOURCEDIR) ('/etc/Makefile, compared to') ) } ) (C {(echo)} {(DQ (' a umask of 022. This umask allows world read permission when'))} ) (C {(echo)} {(DQ (" the file's default permissions have it."))}) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' No world permissions can sometimes cause problems. A umask of'))} ) (C {(echo)} {(DQ (' 022 will restore the default behavior, but is not mandatory.'))} ) (C {(echo)} {(DQ (' /etc/master.passwd is a special case. Its file permissions'))} ) (C {(echo)} {(DQ (' will be 600 (rw-------) if installed.'))}) (C {(echo)} {(SQ )}) (C {(echo)} {(-n)} {(DQ ('What umask should I use? [') (${ VSub_Name USER_UMASK) ('] '))} ) (C {(read)} {(NEW_UMASK)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NEW_UMASK) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name NEW_UMASK> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name '$USER_UMASK')} ) spids: [5043 5047] ) ) } spids: [5041] ) ] spids: [5041] ) ] spids: [4929 4930 5051 16777215] ) ] spids: [4910 4918 5054] ) (C {(echo)} {(SQ )}) ] spids: [16777215 4901] ) ] spids: [16777215 5062] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONFIRMED_UMASK) op: Equal rhs: { (BracedVarSub token: <VSub_Name NEW_UMASK> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0022)}) spids: [5066 5070] ) } spids: [5065] ) ] spids: [5065] ) (ForEach iter_name: file iter_words: [ {(atm)} {(devfs)} {(diskless1)} {(diskless2)} {(network)} {(network6)} {(pccard)} {(serial)} {(syscons)} {(sysctl)} {(alpha)} {(amd64)} {(i386)} {(sparc64)} ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name DESTDIR) (/etc/rc.) (${ VSub_Name file))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLD_RC_PRESENT) op: Equal rhs: {(1)} spids: [5144] ) ] spids: [5144] ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [16777215 5141] ) ] spids: [16777215 5151] ) ] spids: [5119 5153] ) spids: [5087 5117] ) (Case to_match: {(DQ (${ VSub_Name OLD_RC_PRESENT))} arms: [ (case_arm pat_list: [{(1)}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (' *** There are elements of the old rc system in ') (${ VSub_Name DESTDIR) (/etc/.) ) } ) (C {(echo)} {(SQ )}) (C {(echo)} {(SQ <' While these scripts will not hurt anything, they are not'>)}) (C {(echo)} {(SQ <' functional on an up to date system, and can be removed.'>)}) (C {(echo)} {(SQ )}) (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} {(-n)} {(SQ <'Move these files to /var/tmp/mergemaster/old_rc? [yes] '>)}) (C {(read)} {(MOVE_OLD_RC)}) (Case to_match: {(DQ (${ VSub_Name MOVE_OLD_RC))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (nN) (Lit_Other ']') (Lit_Other '*')}] spids: [5256 5260 5262 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(mkdir)} {(-p)} {(/var/tmp/mergemaster/old_rc)}) (ForEach iter_name: file iter_words: [ {(atm)} {(devfs)} {(diskless1)} {(diskless2)} {(network)} {(network6)} {(pccard)} {(serial)} {(syscons)} {(sysctl)} {(alpha)} {(amd64)} {(i386)} {(sparc64)} ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} { (DQ (${ VSub_Name DESTDIR) (/etc/rc.) (${ VSub_Name file) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(${ VSub_Name DESTDIR) (/etc/rc.) (${ VSub_Name file)} {(/var/tmp/mergemaster/old_rc/)} ) ] spids: [16777215 5335] ) ] spids: [16777215 5351] ) ] spids: [5313 5354] ) spids: [5281 5311] ) (C {(echo)} {(SQ <' The files have been moved'>)}) (C {(press_to_continue)}) ] spids: [5265 5266 5367 16777215] ) ] spids: [5245 5253 5370] ) ] spids: [16777215 5227 5373 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] spids: [5376 5377 5379 16777215] ) ] spids: [5214 5222 5382] ) ] spids: [5166 5167 16777215 5384] ) ] spids: [5156 5164 5384] ) (FuncDef name: install_error body: (BraceGroup children: [ (C {(echo)} { (DQ ('*** FATAL ERROR: Unable to install ') (${ VSub_Number 1) (' to ') (${ VSub_Number 2) ) } ) (C {(echo)} {(SQ )}) (C {(exit)} {(1)}) ] spids: [5401] ) spids: [5396 5400] ) (FuncDef name: do_install_and_rm body: (BraceGroup children: [ (Case to_match: {(DQ (${ VSub_Name PRESERVE_FILES))} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} { (DQ (${ VSub_Number 3) (/) (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [5473 5478] ) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mkdir)} {(-p)} {(${ VSub_Name PRESERVE_FILES_DIR) (/) (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [5495 5500] ) } ) (C {(cp)} {(${ VSub_Number 3) (/) (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [5509 5514] ) } {(${ VSub_Name PRESERVE_FILES_DIR) (/) (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [5520 5525] ) } ) ] spids: [16777215 5484] ) ] spids: [16777215 5528] ) ] spids: [5450 5459 5531 16777215] ) ] spids: [5439 5447 5534] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} { (DQ (${ VSub_Number 3) (/) (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [5551 5556] ) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(install)} {(-m)} {(${ VSub_Number 1)} {(${ VSub_Number 2)} {(${ VSub_Number 3)} ) terminator: <Op_Semi ';'> ) ] action: [(C {(unlink)} {(${ VSub_Number 2)})] spids: [16777215 5584] ) ] else_action: [(C {(install_error)} {(${ VSub_Number 2)} {(${ VSub_Number 3)})] spids: [5594 5608] ) ] spids: [16777215 5562] ) ] else_action: [(C {(install_error)} {(${ VSub_Number 2)} {(${ VSub_Number 3)})] spids: [5611 5625] ) ] spids: [5436] ) spids: [5431 5435] ) (FuncDef name: find_mode body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:OCTAL) op:Equal spids:[5643])] spids: [5641] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OCTAL) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Amp left: (ArithBinary op_id: Arith_Amp left: (ArithUnary op_id: Arith_Tilde child: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} { (DQ ('obase=10; ibase=8; ') (${ VSub_Name CONFIRMED_UMASK) ) } ) (C {(bc)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [5650 5663] ) } ) ) right: (ArithWord w:{(Lit_Digits 4095)}) ) right: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} { (DQ ('obase=10; ibase=8; ') (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(-f)} {(DQ ('%OMp%OLp'))} {(${ VSub_Number 1)} ) ] ) left_token: <Left_CommandSub '$('> spids: [5677 5689] ) ) } ) (C {(bc)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [5672 5695] ) } ) ) spids: [5647 5698] ) } spids: [5646] ) ] spids: [5646] ) (C {(printf)} {(DQ ('%04o') (Lit_Other '\\') (n))} {(${ VSub_Name OCTAL)}) ] spids: [5638] ) spids: [5633 5637] ) (FuncDef name: mm_install body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:INSTALL_DIR) op:Equal spids:[5726])] spids: [5724] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTALL_DIR) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [5730 5734] ) } spids: [5729] ) ] spids: [5729] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTALL_DIR) op: Equal rhs: { (BracedVarSub token: <VSub_Name INSTALL_DIR> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) spids: [5738 5743] ) } spids: [5737] ) ] spids: [5737] ) (Case to_match: {(DQ (${ VSub_Name INSTALL_DIR))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTALL_DIR) op: Equal rhs: {(/)} spids: [5763] ) ] spids: [5763] ) ] spids: [16777215 5760 5767 16777215] ) ] spids: [5747 5755 5770] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))} {(-a)} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIR_MODE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(find_mode)} {(DQ (${ VSub_Name TEMPROOT) (/) (${ VSub_Name INSTALL_DIR))} ) ] ) left_token: <Left_Backtick '`'> spids: [5811 5823] ) } spids: [5810] ) ] spids: [5810] ) (AndOr children: [ (C {(install)} {(-d)} {(-o)} {(root)} {(-g)} {(wheel)} {(-m)} {(DQ (${ VSub_Name DIR_MODE))} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))} ) (C {(install_error)} {($ VSub_Number '$1')} {(${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR)} ) ] op_id: Op_DPipe ) ] spids: [16777215 5807] ) ] spids: [16777215 5870] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FILE_MODE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(find_mode)} {(DQ (${ VSub_Number 1))})] ) left_token: <Left_Backtick '`'> spids: [5875 5883] ) } spids: [5874] ) ] spids: [5874] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-x)} {(DQ (${ VSub_Number 1))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [5910 5914] ) ) } arms: [ (case_arm pat_list: [{(/etc/mail/aliases)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NEED_NEWALIASES) op: Equal rhs: {(yes)} spids: [5924] ) ] spids: [5924] ) ] spids: [5920 5921 5928 16777215] ) (case_arm pat_list: [{(/etc/login.conf)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NEED_CAP_MKDB) op: Equal rhs: {(yes)} spids: [5935] ) ] spids: [5935] ) ] spids: [5931 5932 5939 16777215] ) (case_arm pat_list: [{(/etc/services)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NEED_SERVICES_MKDB) op: Equal rhs: {(yes)} spids: [5946] ) ] spids: [5946] ) ] spids: [5942 5943 5950 16777215] ) (case_arm pat_list: [{(/etc/master.passwd)}] action: [ (C {(do_install_and_rm)} {(600)} {(DQ (${ VSub_Number 1))} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NEED_PWD_MKDB) op: Equal rhs: {(yes)} spids: [5977] ) ] spids: [5977] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DONT_INSTALL) op: Equal rhs: {(yes)} spids: [5981] ) ] spids: [5981] ) ] spids: [5953 5954 5985 16777215] ) (case_arm pat_list: [{(/.cshrc)} {(/.profile)}] action: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:st_nlink) op:Equal spids:[5998])] spids: [5996] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:st_nlink) op: Equal rhs: {(0)} spids: [6014] ) ] spids: [6014] ) (C {(eval)} { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(stat)} {(-s)} {(${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [6031 6035] ) } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [6037] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [6023 6039] ) } ) (C {(do_install_and_rm)} {(DQ (${ VSub_Name FILE_MODE))} {(DQ (${ VSub_Number 1))} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name AUTO_INSTALL))} {(-a)} {($ VSub_Name '$st_nlink')} {(-gt)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HANDLE_LINK) op: Equal rhs: {(l)} spids: [6094] ) ] spids: [6094] ) ] spids: [16777215 6091] ) ] else_action: [ (Case to_match: {(DQ (${ VSub_Name LINK_EXPLAINED))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} { (DQ ( ' *** Historically BSD derived systems have had a' ) ) } ) (C {(echo)} {(DQ (' hard link from /.cshrc and /.profile to'))} ) (C {(echo)} { (DQ (' their namesakes in /root. Please indicate')) } ) (C {(echo)} {(DQ (' your preference below for bringing your'))} ) (C {(echo)} {(DQ (' installed files up to date.'))}) (C {(echo)} {(SQ )}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LINK_EXPLAINED) op: Equal rhs: {(yes)} spids: [6158] ) ] spids: [6158] ) ] spids: [16777215 6114 6162 16777215] ) ] spids: [6101 6109 6165] ) (C {(echo)} { (DQ (" Use 'd' to delete the temporary ") (${ VSub_Name COMPFILE) ) } ) (C {(echo)} { (DQ (" Use 'l' to delete the existing ") (${ VSub_Name DESTDIR) (/root/) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [6187 6192] ) (' and create the link') ) } ) (C {(echo)} {(SQ )}) (C {(echo)} { (DQ ( ' Default is to leave the temporary file to deal with by hand' ) ) } ) (C {(echo)} {(SQ )}) (C {(echo)} {(-n)} { (DQ (' How should I handle ') (${ VSub_Name COMPFILE) ('? [Leave it to install later] ') ) } ) (C {(read)} {(HANDLE_LINK)}) ] spids: [6098 6234] ) (Case to_match: {(DQ (${ VSub_Name HANDLE_LINK))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (dD) (Lit_Other ']') (Lit_Other '*')}] action: [ (C {(rm)} {(DQ (${ VSub_Name COMPFILE))}) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' *** Deleting ') (${ VSub_Name COMPFILE))}) ] spids: [6249 6253 6281 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (lL) (Lit_Other ']') (Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(unlink)} {(${ VSub_Name DESTDIR) (/root/) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [6303 6308] ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(ln)} {(${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [6318 6322] ) } {(${ VSub_Name DESTDIR) (/root/) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [6328 6333] ) } ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (' *** Link from ') (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [6346 6350] ) (' to ') (${ VSub_Name DESTDIR) (/root/) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [6356 6361] ) (' installed successfully') ) } ) ] spids: [16777215 6336] ) ] else_action: [ (C {(echo)} { (DQ (' *** Error linking ') (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [6376 6380] ) (' to ') (${ VSub_Name DESTDIR) (/root/) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [6386 6391] ) ) } ) (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' will remain for your consideration') ) } ) ] spids: [6366 6406] ) ] spids: [6284 6288 6409 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' will remain for your consideration') ) } ) ] spids: [6412 6413 6427 16777215] ) ] spids: [6238 6246 6430] ) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [5988 5993 6436 16777215] ) ] spids: [5907 5917 6439] ) (Case to_match: {(DQ (${ VSub_Name DONT_INSTALL))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {(do_install_and_rm)} {(DQ (${ VSub_Name FILE_MODE))} {(DQ (${ VSub_Number 1))} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))} ) ] spids: [16777215 6456 6483 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(unset)} {(DONT_INSTALL)})] spids: [6486 6487 6495 16777215] ) ] spids: [6443 6451 6498] ) ] spids: [16777215 5904] ) ] else_action: [ (C {(do_install_and_rm)} {(DQ (${ VSub_Name FILE_MODE))} {(DQ (${ VSub_Number 1))} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))} ) ] spids: [6501 6531] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')}) ] spids: [5721] ) spids: [5716 5720] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name TEMPROOT))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('*** FATAL ERROR: The temproot directory (') (${ VSub_Name TEMPROOT) (')'))} ) (C {(echo)} {(SQ <' has disappeared!'>)}) (C {(echo)} {(SQ )}) (C {(exit)} {(1)}) ] spids: [16777215 6558] ) ] spids: [16777215 6589] ) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('*** Beginning comparison'))}) (C {(echo)} {(SQ )}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name PRE_WORLD))} {(-a)} {(-z)} {(DQ (${ VSub_Name RERUN))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (' *** Checking ') (${ VSub_Name DESTDIR) ('/etc/rc.d for stale files'))}) (C {(echo)} {(SQ )}) (AndOr children: [ (C {(cd)} {(DQ (${ VSub_Name DESTDIR) (/etc/rc.d))}) (ForEach iter_name: file iter_words: [{(Lit_Other '*')}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ (${ VSub_Name TEMPROOT) (/etc/rc.d/) (${ VSub_Name file))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STALE_RC_FILES) op: Equal rhs: { (DQ (${ VSub_Name STALE_RC_FILES) (' ') (${ VSub_Name file)) } spids: [6711] ) ] spids: [6711] ) ] spids: [16777215 6708] ) ] spids: [16777215 6723] ) ] spids: [6684 6726] ) spids: [6680 6682] ) ] op_id: Op_DAmp ) (Case to_match: {(DQ (${ VSub_Name STALE_RC_FILES))} arms: [ (case_arm pat_list: [{(SQ )} {(SQ <' *'>)}] action: [(C {(echo)} {(SQ <' *** No stale files found'>)})] spids: [16777215 6746 6756 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} { (DQ (' *** The following files exist in ') (${ VSub_Name DESTDIR) ('/etc/rc.d but not in') ) } ) (C {(echo)} {(DQ (' ') (${ VSub_Name TEMPROOT) ('/etc/rc.d/:'))}) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (${ VSub_Name STALE_RC_FILES))}) (C {(echo)} {(SQ )}) (C {(echo)} {(SQ <' The presence of stale files in this directory can cause the'>)} ) (C {(echo)} {(SQ <' dreaded unpredictable results, and therefore it is highly'>)} ) (C {(echo)} {(SQ <' recommended that you delete them.'>)}) (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(-n)} {(SQ <' *** Delete them now? [n] '>)}) (C {(read)} {(DELETE_STALE_RC_FILES)}) (Case to_match: {(DQ (${ VSub_Name DELETE_STALE_RC_FILES))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (yY) (Lit_Other ']')}] action: [ (C {(echo)} {(SQ <' *** Deleting ... '>)}) (C {(rm)} {(${ VSub_Name STALE_RC_FILES)}) (C {(echo)} {(SQ <' done.'>)}) ] spids: [6874 6877 6901 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(echo)} {(SQ <' *** Files will not be deleted'>)})] spids: [6904 6905 6915 16777215] ) ] spids: [6863 6871 6918] ) (C {(sleep)} {(2)}) ] spids: [16777215 6840 6926 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name DELETE_STALE_RC_FILES))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ <' *** Deleting ... '>)}) (C {(rm)} {(${ VSub_Name STALE_RC_FILES)}) (C {(echo)} {(SQ <' done.'>)}) ] spids: [16777215 6948] ) ] spids: [16777215 6972] ) ] spids: [6929 6930 16777215 6975] ) ] spids: [6827 6835 6975] ) ] spids: [6759 6760 6978 16777215] ) ] spids: [6729 6737 6981] ) (C {(echo)} {(SQ )}) ] spids: [16777215 6643] ) ] spids: [16777215 6989] ) (C {(cd)} {(DQ (${ VSub_Name TEMPROOT))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(DQ (${ VSub_Name MM_PRE_COMPARE_SCRIPT))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(.)} {(DQ (${ VSub_Name MM_PRE_COMPARE_SCRIPT))})] spids: [16777215 7016] ) ] spids: [16777215 7027] ) (ForEach iter_name: COMPFILE iter_words: [ { (CommandSubPart command_list: (CommandList children: [(Pipeline children:[(C {(find)} {(.)}) (C {(sort)})] negated:False)] ) left_token: <Left_Backtick '`'> spids: [7048 7056] ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} { (DQ (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7073 7077] ) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTALLED_TYPE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(-f)} {(SQ <'%HT'>)} {(${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7099 7103] ) } ) ] ) left_token: <Left_Backtick '`'> spids: [7087 7104] ) } spids: [7086] ) ] spids: [7086] ) ] spids: [16777215 7083] ) ] else_action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [7107 7113] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEMPROOT_TYPE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(-f)} {(SQ <'%HT'>)} {($ VSub_Name '$COMPFILE')})] ) left_token: <Left_Backtick '`'> spids: [7117 7127] ) } spids: [7116] ) ] spids: [7116] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$TEMPROOT_TYPE'))} {(Lit_Other '=')} {(DQ ($ VSub_Name '$INSTALLED_TYPE'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$COMPFILE'))} {(Lit_Other '=')} {(SQ <.>)} {(Lit_Other ']')} ) (ControlFlow token:<ControlFlow_Continue continue>) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEMPROOT_TYPE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$TEMPROOT_TYPE')}) (C {(tr)} {(Lit_Other '[') (Lit_Other ':') (upper) (Lit_Other ':') (Lit_Other ']') } {(Lit_Other '[') (Lit_Other ':') (lower) (Lit_Other ':') (Lit_Other ']')} ) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [7173 7193] ) } spids: [7172] ) ] spids: [7172] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTALLED_TYPE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$INSTALLED_TYPE')}) (C {(tr)} {(Lit_Other '[') (Lit_Other ':') (upper) (Lit_Other ':') (Lit_Other ']') } {(Lit_Other '[') (Lit_Other ':') (lower) (Lit_Other ':') (Lit_Other ']')} ) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [7197 7217] ) } spids: [7196] ) ] spids: [7196] ) (C {(echo)} { (DQ ('*** The installed file ') (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7228 7232] ) (' has the type ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$INSTALLED_TYPE') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) (C {(echo)} { (DQ (' but the new version has the type ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$TEMPROOT_TYPE') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' How would you like to handle this?'))}) (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (" Use 'r' to remove ") (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7276 7280] ) ) } ) (Case to_match: {(DQ ($ VSub_Name '$TEMPROOT_TYPE'))} arms: [ (case_arm pat_list: [{(SQ <'symbolic link'>)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGET) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {($ VSub_Name '$COMPFILE')})] ) left_token: <Left_Backtick '`'> spids: [7300 7304] ) } spids: [7299] ) ] spids: [7299] ) (C {(echo)} { (DQ (' and create a link to ') ($ VSub_Name '$TARGET') (' in its place') ) } ) ] spids: [7294 7296 7315 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} { (DQ (' You will be able to install it as a ') (EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) ($ VSub_Name '$TEMPROOT_TYPE') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) ] spids: [7318 7319 7330 16777215] ) ] spids: [7284 7290 7333] ) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (" Use 'i' to ignore this"))}) (C {(echo)} {(SQ )}) (C {(echo)} {(-n)} {(DQ (' How to proceed? [i] '))}) (C {(read)} {(ANSWER)}) (Case to_match: {(DQ ($ VSub_Name '$ANSWER'))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (rR) (Lit_Other ']')}] action: [ (Case to_match: {(DQ (${ VSub_Name PRESERVE_FILES))} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [ (AndOr children: [ (C {(mv)} {(${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7411 7415] ) } {(${ VSub_Name PRESERVE_FILES_DIR) (/)} ) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) ] spids: [7394 7403 7428 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(rm)} {(-rf)} {(${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7441 7445] ) } ) ] spids: [7431 7432 7447 16777215] ) ] spids: [7383 7391 7450] ) (Case to_match: {(DQ ($ VSub_Name '$TEMPROOT_TYPE'))} arms: [ (case_arm pat_list: [{(SQ <'symbolic link'>)}] action: [ (C {(ln)} {(-sf)} {($ VSub_Name '$TARGET')} {(${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7476 7480] ) } ) ] spids: [7463 7465 7482 16777215] ) ] spids: [7453 7459 7485] ) ] spids: [7378 7381 7487 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ ('*** See the man page about adding ') (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7503 7507] ) (' to the list of IGNORE_FILES') ) } ) (C {(press_to_continue)}) ] spids: [7490 7491 7514 16777215] ) ] spids: [7369 7375 7517] ) (C {(echo)} {(SQ )}) ] spids: [16777215 7150] ) ] spids: [16777215 7526] ) ] spids: [7060 7528] ) spids: [7047 7058] ) (ForEach iter_name: COMPFILE iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(find)} {(.)} {(-type)} {(f)}) (C {(sort)})] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [7537 7549] ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} { (DQ (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7580 7584] ) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [(C {(diff_loop)})] spids: [16777215 7606 7612 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Case to_match: {(DQ (${ VSub_Name AUTO_INSTALL))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' will remain for your consideration') ) } ) ] spids: [16777215 7632 7650 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(diff_loop)})] spids: [7653 7654 7660 16777215] ) ] spids: [7619 7627 7663] ) ] spids: [7615 7616 7666 16777215] ) ] spids: [7593 7601 7669] ) (ControlFlow token:<ControlFlow_Continue continue>) ] spids: [16777215 7590] ) ] spids: [16777215 7678] ) (Case to_match: {(DQ (${ VSub_Name STRICT))} arms: [ (case_arm pat_list: [ {(SQ )} {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ID1) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(grep)} { (DQ ('[') (Lit_Other '$') (']') (${ VSub_Name ID_TAG) (':')) } {(${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7744 7748] ) } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [7750] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [7728 7752] ) } spids: [7727] ) ] spids: [7727] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ID2) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(grep)} { (DQ ('[') (Lit_Other '$') (']') (${ VSub_Name ID_TAG) (':') ) } {(${ VSub_Name COMPFILE)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [7773] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [7756 7775] ) } spids: [7755] ) ] spids: [7755] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ID2) op: Equal rhs: {(none)} spids: [7779] ) ] spids: [7779] ) ] op_id: Op_DPipe ) (Case to_match: {(DQ (${ VSub_Name ID2))} arms: [ (case_arm pat_list: [{(DQ (${ VSub_Name ID1))}] action: [ (C {(echo)} { (DQ (' *** Temp ') (${ VSub_Name COMPFILE) (' and installed have the same Id, deleting') ) } ) (C {(rm)} {(DQ (${ VSub_Name COMPFILE))}) ] spids: [7796 7800 7823 16777215] ) ] spids: [7784 7792 7826] ) ] spids: [16777215 7704 7829 16777215] ) ] spids: [7682 7690 7832] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name COMPFILE))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [ {(diff)} {(-q)} {(${ VSub_Name DIFF_OPTIONS)} { (DQ (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)}) spids: [7893 7897] ) ) } {(DQ (${ VSub_Name COMPFILE))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [7906] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [7912] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (' *** Temp ') (${ VSub_Name COMPFILE) (' and installed are the same, deleting') ) } ) (C {(rm)} {(DQ (${ VSub_Name COMPFILE))}) ] spids: [16777215 7916] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$FREEBSD_ID'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [ {(diff)} {(-q)} {(-I) (SQ <'[$]FreeBSD.*[$]'>)} { (DQ (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [8001 8005] ) ) } {(DQ (${ VSub_Name COMPFILE))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [8014] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [8020] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('*** Updated revision control Id for ') (${ VSub_Name DESTDIR) (BracedVarSub token: <VSub_Name COMPFILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(.)} ) spids: [8048 8052] ) ) } ) ] spids: [16777215 8038] ) ] else_action: [ (C {(echo)} { (DQ ('*** Problem installing ') (${ VSub_Name COMPFILE) (', it will remain to merge by hand later') ) } ) ] spids: [8056 8070] ) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [16777215 8024] ) ] spids: [16777215 8076] ) ] spids: [16777215 7983] ) ] spids: [16777215 8079] ) (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [(C {(diff_loop)})] spids: [16777215 8095 8105 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} { (DQ (' *** ') (${ VSub_Name COMPFILE) (' will remain for your consideration') ) } ) ] spids: [8108 8109 8127 16777215] ) ] spids: [8082 8090 8130] ) ] spids: [7939 8136] ) ] spids: [16777215 7863] ) ] spids: [16777215 8142] ) ] spids: [7552 8147] ) spids: [7536 7550] ) (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('*** Comparison complete'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {(DQ (${ VSub_Name MTREENEW))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('*** Saving mtree database for future upgrades'))}) (AndOr children: [ (C {(test)} {(-e)} {(DQ (${ VSub_Name MTREEFILE))}) (C {(unlink)} {(${ VSub_Name MTREEFILE)}) ] op_id: Op_DAmp ) (C {(mv)} {(${ VSub_Name MTREENEW)} {(${ VSub_Name MTREEFILE)}) ] spids: [16777215 8180] ) ] spids: [16777215 8219] ) (C {(echo)} {(SQ )}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_FOR_FILES) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(find)} {(${ VSub_Name TEMPROOT)} {(-type)} {(f)} {(-size)} {(Lit_Other '+') (0)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [8245] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [8229 8247] ) } spids: [8228] ) ] spids: [8228] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name TEST_FOR_FILES))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('*** Files that remain for you to merge by hand:'))}) (Pipeline children: [ (C {(find)} {(DQ (${ VSub_Name TEMPROOT))} {(-type)} {(f)} {(-size)} {(Lit_Other '+') (0)}) (C {(sort)}) ] negated: False ) (C {(echo)} {(SQ )}) (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {(echo)} {(-n)} { (DQ ('Do you wish to delete what is left of ') (${ VSub_Name TEMPROOT) ('? [no] ') ) } ) (C {(read)} {(DEL_TEMPROOT)}) (Case to_match: {(DQ (${ VSub_Name DEL_TEMPROOT))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (yY) (Lit_Other ']') (Lit_Other '*')}] action: [(C {(delete_temproot)})] spids: [8348 8352 8358 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(DQ (' *** ') (${ VSub_Name TEMPROOT) (' will remain'))}) ] spids: [8361 8362 8376 16777215] ) ] spids: [8337 8345 8379] ) ] spids: [16777215 8316 8382 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] spids: [8385 8386 8388 16777215] ) ] spids: [8303 8311 8391] ) ] spids: [16777215 8264] ) ] else_action: [ (C {(echo)} {(DQ ('*** ') (${ VSub_Name TEMPROOT) (' is empty, deleting'))}) (C {(delete_temproot)}) ] spids: [8393 8409] ) (Case to_match: {(DQ (${ VSub_Name AUTO_INSTALLED_FILES))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 8424 8426 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (Pipeline children: [ (Subshell child: (CommandList children: [ (C {(echo)} {(SQ )}) (C {(echo)} { (SQ < '*** You chose the automatic install option for files that did not' > ) } ) (C {(echo)} { (SQ < ' exist on your system. The following were installed for you:' > ) } ) (C {(echo)} {(DQ (${ VSub_Name AUTO_INSTALLED_FILES))}) ] ) spids: [8448 8480] ) (C {(${ VSub_Name PAGER)}) ] negated: False ) ] spids: [16777215 8445 8489 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(SQ <'*** You chose the automatic install option for files that did not'>)} ) (C {(echo)} {(SQ <' exist on your system. The following were installed for you:'>)} ) (C {(echo)} {(DQ (${ VSub_Name AUTO_INSTALLED_FILES))}) ] spids: [8492 8493 8525 16777215] ) ] spids: [8432 8440 8528] ) ] spids: [8428 8429 8531 16777215] ) ] spids: [8412 8420 8533] ) (Case to_match: {(DQ (${ VSub_Name AUTO_UPGRADED_FILES))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 8548 8550 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Case to_match: {(DQ (${ VSub_Name AUTO_RUN))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (Pipeline children: [ (Subshell child: (CommandList children: [ (C {(echo)} {(SQ )}) (C {(echo)} { (SQ < '*** You chose the automatic upgrade option for files that you did' > ) } ) (C {(echo)} { (SQ < ' not alter on your system. The following were upgraded for you:' > ) } ) (C {(echo)} {(DQ (${ VSub_Name AUTO_UPGRADED_FILES))}) ] ) spids: [8572 8604] ) (C {(${ VSub_Name PAGER)}) ] negated: False ) ] spids: [16777215 8569 8613 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(SQ <'*** You chose the automatic upgrade option for files that you did'>)} ) (C {(echo)} {(SQ <' not alter on your system. The following were upgraded for you:'>)} ) (C {(echo)} {(DQ (${ VSub_Name AUTO_UPGRADED_FILES))}) ] spids: [8616 8617 8649 16777215] ) ] spids: [8556 8564 8652] ) ] spids: [8552 8553 8655 16777215] ) ] spids: [8536 8544 8657] ) (FuncDef name: run_it_now body: (BraceGroup children: [ (AndOr children: [ (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$AUTO_RUN'))} {(Lit_Other ']')}) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DAmp ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:answer) op:Equal spids:[8686])] spids: [8684] ) (C {(echo)} {(SQ )}) (While cond: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$RUN_UPDATES'))} {(Lit_Other '=')} {(always)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:answer) op: Equal rhs: {(y)} spids: [8723] ) ] spids: [8723] ) ] spids: [16777215 8720] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$RUN_UPDATES'))} {(Lit_Other '=')} {(never)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:answer) op: Equal rhs: {(n)} spids: [8745] ) ] spids: [8745] ) ] spids: [8727 8742] ) ] else_action: [ (C {(echo)} {(-n)} {(SQ <' Would you like to run it now? y or n [n] '>)}) (C {(read)} {(answer)}) ] spids: [8749 8766] ) (Case to_match: {(DQ ($ VSub_Name '$answer'))} arms: [ (case_arm pat_list: [{(y)}] action: [ (C {(echo)} {(DQ (' Running ') (${ VSub_Number 1))}) (C {(echo)} {(SQ )}) (C {(eval)} {(DQ (${ VSub_Number 1))}) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [8779 8780 8811 16777215] ) (case_arm pat_list: [{(SQ )} {(n)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$RUN_UPDATES'))} {(Lit_Other '=')} {(never)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ (' *** Cancelled'))}) (C {(echo)} {(SQ )}) ] spids: [16777215 8838] ) ] spids: [16777215 8860] ) (C {(echo)} {(DQ (' Make sure to run ') (${ VSub_Number 1) (' yourself'))} ) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [16777215 8818 8877 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ (' *** Sorry, I do not understand your answer (') (${ VSub_Name answer) (')') ) } ) (C {(echo)} {(SQ )}) ] spids: [8880 8881 16777215 8907] ) ] spids: [8770 8776 8907] ) ] spids: [8702 8910] ) ) ] spids: [8665] ) spids: [8660 8664] ) (Case to_match: {(DQ (${ VSub_Name NEED_NEWALIASES))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 8927 8929 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name DESTDIR))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('*** You installed a new aliases file into ') (${ VSub_Name DESTDIR) ('/etc/mail, but') ) } ) (C {(echo)} {(DQ (' the newaliases command is limited to the directories configured'))} ) (C {(echo)} {(DQ (' in sendmail.cf. Make sure to create your aliases database by'))} ) (C {(echo)} {(DQ (' hand when your sendmail configuration is done.'))}) ] spids: [16777215 8956] ) ] else_action: [ (C {(echo)} {(DQ ('*** You installed a new aliases file, so make sure that you run'))}) (C {(echo)} {(DQ (" '/usr/bin/newaliases' to rebuild your aliases database"))}) (C {(run_it_now)} {(SQ </usr/bin/newaliases>)}) ] spids: [8991 9015] ) ] spids: [8931 8932 9018 16777215] ) ] spids: [8915 8923 9020] ) (Case to_match: {(DQ (${ VSub_Name NEED_CAP_MKDB))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 9035 9037 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('*** You installed a login.conf file, so make sure that you run'))}) (C {(echo)} {(DQ (" '/usr/bin/cap_mkdb ") (${ VSub_Name DESTDIR) ("/etc/login.conf'"))}) (C {(echo)} {(DQ (' to rebuild your login.conf database'))}) (C {(run_it_now)} {(DQ ('/usr/bin/cap_mkdb ') (${ VSub_Name DESTDIR) (/etc/login.conf))}) ] spids: [9039 9040 9085 16777215] ) ] spids: [9023 9031 9087] ) (Case to_match: {(DQ (${ VSub_Name NEED_SERVICES_MKDB))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 9102 9104 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('*** You installed a services file, so make sure that you run'))}) (C {(echo)} { (DQ (" '/usr/sbin/services_mkdb -q -o ") (${ VSub_Name DESTDIR) ('/var/db/services.db ') (${ VSub_Name DESTDIR) ("/etc/services'") ) } ) (C {(echo)} {(DQ (' to rebuild your services database'))}) (C {(run_it_now)} { (DQ ('/usr/sbin/services_mkdb -q -o ') (${ VSub_Name DESTDIR) ('/var/db/services.db ') (${ VSub_Name DESTDIR) (/etc/services) ) } ) ] spids: [9106 9107 9160 16777215] ) ] spids: [9090 9098 9162] ) (Case to_match: {(DQ (${ VSub_Name NEED_PWD_MKDB))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 9177 9179 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('*** You installed a new master.passwd file, so make sure that you run'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name DESTDIR))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (" '/usr/sbin/pwd_mkdb -d ") (${ VSub_Name DESTDIR) ('/etc -p ') (${ VSub_Name DESTDIR) ("/etc/master.passwd'") ) } ) (C {(echo)} {(DQ (' to rebuild your password files'))}) (C {(run_it_now)} { (DQ ('/usr/sbin/pwd_mkdb -d ') (${ VSub_Name DESTDIR) ('/etc -p ') (${ VSub_Name DESTDIR) (/etc/master.passwd) ) } ) ] spids: [16777215 9213] ) ] else_action: [ (C {(echo)} {(DQ (" '/usr/sbin/pwd_mkdb -p /etc/master.passwd'"))}) (C {(echo)} {(DQ (' to rebuild your password files'))}) (C {(run_it_now)} {(SQ <'/usr/sbin/pwd_mkdb -p /etc/master.passwd'>)}) ] spids: [9253 9277] ) ] spids: [9181 9182 9280 16777215] ) ] spids: [9165 9173 9282] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name DESTDIR) (/etc/localtime))} {(-a)} {(KW_Bang '!')} {(-L)} {(DQ (${ VSub_Name DESTDIR) (/etc/localtime))} {(-a)} {(-z)} {(DQ (${ VSub_Name PRE_WORLD))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ )}) (AndOr children: [ (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name DESTDIR))} {(Lit_Other ']')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tzs_args) op: Equal rhs: {(DQ ('-C ') (${ VSub_Name DESTDIR))} spids: [9350] ) ] spids: [9350] ) ] op_id: Op_DAmp ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name DESTDIR) (/var/db/zoneinfo))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('*** Reinstalling ') (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(${ VSub_Name DESTDIR) (/var/db/zoneinfo)})] ) left_token: <Left_Backtick '`'> spids: [9382 9389] ) (' as ') (${ VSub_Name DESTDIR) (/etc/localtime) ) } ) (C {(tzsetup)} {($ VSub_Name '$tzs_args')} {(-r)}) ] spids: [16777215 9375] ) ] else_action: [ (C {(echo)} { (DQ ('*** There is no ') (${ VSub_Name DESTDIR) ('/var/db/zoneinfo file to update ') (${ VSub_Name DESTDIR) (/etc/localtime.) ) } ) (C {(echo)} {(SQ <' You should run tzsetup'>)}) (C {(run_it_now)} {(DQ ('tzsetup ') ($ VSub_Name '$tzs_args'))}) ] spids: [9405 9438] ) ] spids: [16777215 9324] ) ] spids: [16777215 9440] ) (C {(echo)} {(SQ )}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(DQ (${ VSub_Name MM_EXIT_SCRIPT))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(.)} {(DQ (${ VSub_Name MM_EXIT_SCRIPT))})] spids: [16777215 9464] ) ] spids: [16777215 9475] ) (Case to_match: {(DQ (${ VSub_Name COMP_CONFS))} arms: [ (case_arm pat_list:[{(SQ )}] spids:[16777215 9490 9492 16777215]) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(.)} {(${ VSub_Name DESTDIR) (/etc/defaults/rc.conf)}) (Pipeline children: [ (Subshell child: (CommandList children: [ (C {(echo)} {(SQ )}) (C {(echo)} {(DQ ('*** Comparing conf files: ') (${ VSub_Name rc_conf_files))}) (ForEach iter_name: CONF_FILE iter_words: [{(${ VSub_Name rc_conf_files)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name CONF_FILE))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ )}) (C {(echo)} { (DQ ('*** From ') (${ VSub_Name DESTDIR) (${ VSub_Name CONF_FILE) ) } ) (C {(echo)} { (DQ ('*** From ') (${ VSub_Name DESTDIR) (/etc/defaults/rc.conf) ) } ) (ForEach iter_name: RC_CONF_VAR iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(-i)} {(Lit_Other '^') (Lit_Other '[') (a-z) (Lit_Other ']') } {(${ VSub_Name DESTDIR) (${ VSub_Name CONF_FILE)} ) (C {(cut)} {(-d)} {(SQ <'='>)} {(-f)} {(1)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [9597 9628] ) } ] do_arg_iter: False body: (DoGroup children: [ (C {(echo)} {(SQ )}) (C {(grep)} {(-w)} {(Lit_Other '^') (${ VSub_Name RC_CONF_VAR)} {(${ VSub_Name DESTDIR) (${ VSub_Name CONF_FILE)} ) (AndOr children: [ (C {(grep)} {(-w)} {(Lit_Other '^') (${ VSub_Name RC_CONF_VAR)} {(${ VSub_Name DESTDIR) (/etc/defaults/rc.conf)} ) (C {(echo)} { (SQ <' * No default variable with this name'>) } ) ] op_id: Op_DPipe ) ] spids: [9631 9681] ) spids: [9596 9629] ) ] spids: [16777215 9557] ) ] spids: [16777215 9684] ) ] spids: [9536 9687] ) spids: [9530 9534] ) ] ) spids: [9507 9688] ) (C {(${ VSub_Name PAGER)}) ] negated: False ) (C {(echo)} {(SQ )}) ] spids: [9494 9495 9703 16777215] ) ] spids: [9478 9486 9705] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name PRESERVE_FILES))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(find)} {(-d)} {($ VSub_Name '$PRESERVE_FILES_DIR')} {(-type)} {(d)} {(-empty)} {(-delete)} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[9740])] ) (SimpleCommand words: [{(rmdir)} {($ VSub_Name '$PRESERVE_FILES_DIR')}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[9748])] ) ] spids: [16777215 9723] ) ] spids: [16777215 9751] ) (C {(exit)} {(0)}) ] )