|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 8234 (0x202a)
Types: TextFile
Names: »B«
└─⟦516dceb10⟧ Bits:30000751 8mm tape, Rational 1000, RCI_VADS
└─⟦9a14c9417⟧ »DATA«
└─⟦this⟧
with Sparc_Strings;
separate (Library_Extensions)
procedure Make_Path_Postprocess
(Host_Path_Name : String;
Remote_Machine : String;
Remote_Directory : String;
Remote_Program_Library : String;
Status : in out Simple_Status.Condition) is
-- Stripped_Machine : CONSTANT String :=
-- Su.Strip (From => Remote_Machine, Filler => ' ');
--
-- Stripped_Directory : CONSTANT String :=
-- Su.Strip (From => Remote_Directory, Filler => ' ');
--
-- Remote_Program_Lib : CONSTANT String :=
-- Stripped_Directory & Sparc_Strings.Directory_Separator & "ada.lib";
--
The_File_Exists : Boolean := False;
The_Dir_Exists : Boolean := False;
Remote_Connection : Rci.Context;
begin
declare
Stripped_Machine : constant String :=
Su.Strip (From => Remote_Machine, Filler => ' ');
Stripped_Directory : constant String :=
Su.Strip (From => Remote_Directory, Filler => ' ');
Remote_Program_Lib : constant String :=
Stripped_Directory & Sparc_Strings.Directory_Separator & "ada.lib";
begin
-- this routine IGNORES the Remote_Program_Library parameter as it has no
-- meaning in the VADS context.
Log.Put_Line
(
Message =>
"Make_Path_Postprocess ( host_path_name =>" &
Naming.Get_Simple_Name (Host_Path_Name) & ",remote_machine => " &
Remote_Machine & ",remote_directory => " & Remote_Directory &
",remote_Program_Library => " & Remote_Program_Library & ")",
Kind => Profile.Sharp_Msg);
Log.Put_Line
(
Message =>
"Make_Path_Postprocess ( Stripped_Machine =>" & Stripped_Machine &
",stripped_directory => " & Stripped_Directory &
",remote_program_lib => " & Remote_Program_Lib,
Kind => Profile.Sharp_Msg);
Simple_Status.Initialize (Status);
if Stripped_Machine = "" or else Stripped_Directory = "" then
Display_Information
(Remote_Machine_Name => Stripped_Machine,
Remote_Directory_Name => Stripped_Directory);
Set_Status
(Status => Status,
Message => "Insufficient remote program library information.",
Severity => Simple_Status.Problem);
end if;
if not Simple_Status.Error (Status) then
Acquire_Connection
(Remote_Connection => Remote_Connection,
Remote_Machine => Stripped_Machine,
Status => Status);
end if;
if not Simple_Status.Error (Status) then
--
-- Check for existence of remote directory. If it does not
-- exist, then create a new remote directory.
--
Directory_Exists
(Remote_Directory => Stripped_Directory,
Remote_Machine => Remote_Machine,
Remote_Connection => Remote_Connection,
Status => Status,
Exists => The_Dir_Exists);
if The_Dir_Exists then
Log.Put_Line
(Message => "Using existing directory " & Stripped_Directory,
Kind => Profile.Note_Msg);
else
Log.Put_Line
(Message => "Creating a new remote directory." &
Stripped_Directory,
Kind => Profile.Note_Msg);
Create_Remote_Directory
(Remote_Machine => Stripped_Machine,
Remote_Directory => Stripped_Directory,
Remote_Connection => Remote_Connection,
Status => Status);
end if;
if not Simple_Status.Error (Status) then
--
-- Check for existence of remote library. If it does not
-- exist, then create a new remote library. If it does, use it.
--
File_Exists
(Remote_Filename => Remote_Program_Lib,
Remote_Machine => Stripped_Machine,
Remote_Connection => Remote_Connection,
Status => Status,
Exists => The_File_Exists);
if not Simple_Status.Error (Status) then
if The_File_Exists then
Log.Put_Line
(Message =>
"An Ada library already exists in " &
Stripped_Directory &
". " &
"This library will be used in its existing state.",
Kind => Profile.Warning_Msg);
else
Create_Program_Library
(Host_View => Host_Path_Name,
Remote_Machine => Stripped_Machine,
Remote_Program_Library => Remote_Program_Lib,
Remote_Directory => Stripped_Directory,
Status => Status);
if Simple_Status.Error (Status) then
Log.Put_Line
(Message => Simple_Status.Message (Status),
Kind => Profile.Error_Msg,
Response => Profile.Get);
Set_Status
(Status => Status,
Error_Type => "Remote_Operation_Error",
Message => "Make_Path_Postprocess failed.",
Severity => Simple_Status.Problem);
end if;
end if;
else
Log.Put_Line
(Message => Simple_Status.Message (Status),
Kind => Profile.Error_Msg,
Response => Profile.Get);
Set_Status
(Status => Status,
Error_Type => "Remote_Operation_Error",
Message => "Make_Path_Postprocess failed.",
Severity => Simple_Status.Problem);
end if;
else
Log.Put_Line
(Message => Simple_Status.Message (Status),
Kind => Profile.Error_Msg,
Response => Profile.Get);
Set_Status
(Status => Status,
Error_Type => "Remote_Operation_Error",
Message => "Make_Path_Postprocess failed.",
Severity => Simple_Status.Problem);
end if;
Rci.Release (Remote_Connection => Remote_Connection,
Status => Status,
Trace_Command => Trace_Rci_Commands);
if Simple_Status.Error (Status) then
Log.Put_Line
(Message => Simple_Status.Message (Status),
Kind => Profile.Error_Msg);
Log.Put_Line
(Message => "Release of remote connection failed.",
Kind => Profile.Error_Msg);
end if;
end if;
exception
when others =>
Unhandled_Exception (Status, "Make_Path_PostProcess");
begin
Rci.Release (Remote_Connection => Remote_Connection,
Status => Status,
Trace_Command => Trace_Rci_Commands);
exception
when others =>
null;
end;
end;
end Make_Path_Postprocess;