DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦8e99350de⟧ TextFile

    Length: 5141 (0x1415)
    Types: TextFile
    Names: »B«

Derivation

└─⟦407de186f⟧ Bits:30000749 8mm tape, Rational 1000, RCFSUN
    └─ ⟦e5cd75ab4⟧ »DATA« 
        └─⟦this⟧ 

TextFile

separate (Library_Extensions)
procedure Destroy_View_Preprocess (Host_Path_Name : String;  
                                   Status : in out Simple_Status.Condition) is

    Machine_Result : constant Library_Interface.String_Result :=
       Library_Interface.Remote_Machine (View => Host_Path_Name);
    Remote_Machine : constant String :=
       Machine_Result.Result (1 .. Machine_Result.Size);

    Directory_Result : constant Library_Interface.String_Result :=
       Library_Interface.Remote_Directory (View => Host_Path_Name);
    View_Directory : constant String :=
       Su.Lower_Case (Directory_Result.Result (1 .. Directory_Result.Size));
    Remove_Library_Command : constant String :=
       "ada lib\(family=" & Alsys_Family & "\).erase " &
          View_Directory & "/ada_lib confirm=no";

    Remote_Connection : Remote_Command_Interface.Context;

begin
    Log.Put_Line (Message => "Executing Destroy_View_Preprocess",
                  Kind => Profile.Note_Msg);

    -- set context
    Simple_Status.Initialize (Status);
    -- reset context

    -- Acquire a remote connection to the target
    Remote_Command_Interface.Acquire (Remote_Connection => Remote_Connection,
                                      Status => Status,
                                      Target_Key => Target_Key_Id,
                                      Remote_Machine => Remote_Machine);

    if Simple_Status.Error (Status) then
        Log.Put_Line (Message => Simple_Status.Message (Status),
                      Kind => Profile.Negative_Msg);
        Set_Status (Status => Status,
                    Message => "Unable to acquire connection to " &
                                  Remote_Machine);
        return;
    end if;

    --
    -- Delete the Ada library of the view
    --
    Log.Put_Line (Message =>
                     "Executing remote command: " & Remove_Library_Command,
                  Kind => Profile.Position_Msg);

    Remote_Command_Interface.Execute_Command
       (Command_Line => Remove_Library_Command,
        Remote_Connection => Remote_Connection,
        Status => Status);

    if Simple_Status.Error (Status) then
        Log.Put_Line (Message => Simple_Status.Message (Status),
                      Kind => Profile.Negative_Msg);
        Set_Status (Status => Status,
                    Message => "Unable to erase the ada library in " &
                                  View_Directory);
        Remote_Command_Interface.Release
           (Remote_Connection => Remote_Connection, Status => Status);
        return;
    end if;

    -- Open all protections under the View_Directory.
    Log.Put_Line (Message =>
                     "Executing remote command: chmod -R 777 " & View_Directory,
                  Kind => Profile.Note_Msg);

    Remote_Command_Interface.Execute_Command
       (Command_Line => "chmod -R 777 " & View_Directory,
        Remote_Connection => Remote_Connection,
        Status => Status);

    if Simple_Status.Error (Status) then
        Log.Put_Line (Message => Simple_Status.Message (Status),
                      Kind => Profile.Negative_Msg);
        Set_Status (Status => Status,
                    Message => "Remote Execution Unsuccessful.");
    end if;

    -- Open the protections for the View_Directory.
    Log.Put_Line (Message =>
                     "Executing remote command: chmod 777 " & View_Directory,
                  Kind => Profile.Note_Msg);

    Remote_Command_Interface.Execute_Command
       (Command_Line => "chmod 777 " & View_Directory,
        Remote_Connection => Remote_Connection,
        Status => Status);

    if Simple_Status.Error (Status) then
        Log.Put_Line (Message => Simple_Status.Message (Status),
                      Kind => Profile.Negative_Msg);
        Set_Status (Status => Status,
                    Message => "Remote Execution Unsuccessful.");
    end if;

    Log.Put_Line (Message => "Executing remote command: " &
                                "rm -r " & View_Directory,
                  Kind => Profile.Position_Msg);

    Remote_Command_Interface.Execute_Command
       (Command_Line => "rm -r " & View_Directory,
        Remote_Connection => Remote_Connection,
        Status => Status);

    if Simple_Status.Error (Status) then
        Log.Put_Line (Message => Simple_Status.Message (Status),
                      Kind => Profile.Negative_Msg);
        Set_Status (Status => Status,
                    Message => "Unable to remove the contents of " &
                                  View_Directory);
        Remote_Command_Interface.Release
           (Remote_Connection => Remote_Connection, Status => Status);
        return;
    end if;


    Remote_Command_Interface.Release
       (Remote_Connection => Remote_Connection, Status => Status);

exception
    when others =>
        Unhandled_Exception (Status, "Destroy_View_Preprocess");
        begin
            Remote_Command_Interface.Release
               (Remote_Connection => Remote_Connection, Status => Status);
        exception
            when others =>
                null;
        end;

end Destroy_View_Preprocess;