|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 7208 (0x1c28) Types: TextFile Notes: R1k Text-file segment
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦25bbb01b4⟧ └─⟦this⟧
INSTALL_PATCH => (Do_Step("USERS_CHECK, CONFIGURATION_CHECK, RELEASE_RESTORE, INSTALL_PRODUCT, SHUTDOWN", "!Machine.Release.Archive.Environment.D_12_7_4.Command_Data.Steps");) USERS_CHECK => ( declare Iter : System_Utilities.Session_Iterator; Total : Natural := 0; use System_Utilities; begin Operator.Limit_Login (Sessions => 1); Log.Put_Line ("Limited logins to 1 user", Profile.Positive_Msg); Init (Iter); while not Done (Iter) loop if Value (Iter) /= Get_Session then Log.Put_Line ("User " & User_Name (Value (Iter)) & " is still logged in, and must log off before proceeding", Profile.Warning_Msg); end if; Next (Iter); end loop; end; ) CONFIGURATION_CHECK => ( declare Time_Stamp : constant String := Time_Utilities.Image (Time_Utilities.Get_Time, Time_Utilities.Ada, Time_Utilities.Ada); Env_Config : constant String := System_Utilities.System_Boot_Configuration; function Version (S : String; Factor : Natural := 1) return Natural is subtype Numeric is Character range '0' .. '9'; Start, First : Natural := String_Utilities.Reverse_Locate ('_', S); Last : Natural := S'Last; Ver : Natural := 0; begin if First = 0 then First := S'First; else First := First + 1; end if; while First <= Last and then not (S (First) in Numeric) loop First := First + 1; -- scan back to first numeric value end loop; while Last >= First and then not (S (Last) in Numeric) loop Last := Last - 1; -- scan forward to first numeric value end loop; if First > Last then return 0; -- stop at this point as no numeric values found else Ver := Natural'Value (S (First .. Last)); end if; if Start = 0 then return Ver * Factor; else return Version (S (S'First .. Start - 1), Factor * 100) + (Ver * Factor); end if; end Version; function Job_Running (Job_Name : String) return Boolean is begin for J in System_Utilities.Job_Id loop begin if String_Utilities.Locate (Job_Name, System_Utilities.Job_Name (J)) /= 0 then return True; end if; exception when others => null; end; end loop; return False; end Job_Running; -- Check Environment Rev if Version (Env_Config) < 120703 then Log.Put_Line ("This release requires Environment release D_12_7_3. " & "Please read section on PREREQUISITES TO INSTALLATION. " & "This machine is running Environment release: " & Env_Config, Profile.Warning_Msg); else Log.Put_Line ("Environment version PREREQUISITE OK."); end if; end; ) RELEASE_RESTORE => ( Io.Set_Output ("!Machine.Release.Archive.Environment.D_12_7_4.Logs.Restore_Release_Log"); Library.Unfreeze (Existing => "!Copyright_Rational", Response => "<ERRORS>"); Archive.Restore (Options => "promote new_objects replace", Device => "Release"); -- Log.Put_Line ("Restoring help files"); -- Library.Delete (Existing => "!Machine.Editor_Data.Session_Switch_Help"); -- Library.Delete (Existing => "!Machine.Editor_Data.Help_Data.@"); -- Archive.Restore (Options => "Promote, Replace", -- Device => "Help_Files"); Io.Reset_Output; Log.Filter_Errors (Log_File => "!Machine.Release.Archive.Environment.D_12_7_4.Logs.Restore_Release_Log", Destination => "!Machine.Release.Archive.Environment.D_12_7_4.Logs.Restore_Release_Log_Summary", Auxiliaries => False, Warnings => False, Exceptions => True); Common.Definition ("!Machine.Release.Archive.Environment.D_12_7_4.Logs.Restore_Release_Log_Summary"); ) INSTALL_PRODUCT => ( Library.Context (To_Be => "!Machine.Release.Environment.D_12_7_4"); System_Utilities.Set_Page_Limit (16_000); Io.Set_Output ("!Machine.Release.Archive.Environment.D_12_7_4.Logs.Install_Product_Log"); "!Machine.Release.Environment.D_12_7_4".Install_Product; Log.Put_Line ("Install_Product program completed"); Io.Reset_Output; Log.Filter_Errors (Log_File => "!Machine.Release.Archive.Environment.D_12_7_4.Logs.Install_Product_Log", Destination => "!Machine.Release.Archive.Environment.D_12_7_4.Logs.Install_Product_Log_Summary", Auxiliaries => False, Warnings => False, Exceptions => True); Common.Definition ("!Machine.Release.Archive.Environment.D_12_7_4.Logs.Install_Product_Log_summary"); ) SHUTDOWN => ( Op.Shutdown_Warning (300.0); Op.Shutdown (Reason => "Release", Explanation => "Install_Environment_Patch_Release_D_12_7_4"); -- Library.Context (To_Be => "!Machine.Release.Environment.D_12_7_4.Install_Patch"); -- System_Utilities.Set_Page_Limit (16_000); -- "!Machine.Release.Environment.D_12_7_4.Install_Product".Reboot_For_New_Release; ) RECORD_INSTALLATION => ( declare Product : constant String := Directory_Tools.Naming.Simple_Name (Directory_Tools.Naming.Full_Name ("^")); Release : constant String := Directory_Tools.Naming.Simple_Name (Directory_Tools.Naming.Full_Name ("$")); Product_Info : constant String := "(RELEASE => " & Release & ", DATE => (" & Time_Utilities.Image (Time_Utilities.Get_Time, Time_Utilities.Year_Month_Day) & "), USER => " & System_Utilities.User_Name & '.' & System_Utilities.Session_Name & ")"; Product_Filename : constant String := "!Machine.Release.Current.Products"; F : Io.File_Type; begin Io.Append (F, Name => Product_Filename); Io.Put_Line (F, Product & " => " & Product_Info); Io.Close (F); Log.Put_Line ("Recording product " & Product & " current release as " & Release, Profile.Positive_Msg); end; ) DESTROY_ARCHIVE => ( Library.Delete ("!Machine.Release.Archive.Environment.D_12_7_4"); ) STEP_CHECK => ( -- This must remain the last step in the step file and is used -- as a first level verification of the step file parse and -- tape load. Log.Put_Line ("Step File parses correctly", Profile.Positive_Msg);