DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦cad7ff1f4⟧ Ada Source

    Length: 10240 (0x2800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Destroy_View_Preprocess, seg_03be55, separate Library_Extensions

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



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));

    Remote_Connection : Remote_Command_Interface.Context;

    Delete_Lib_Command : constant String := "a.rmlib -f " & View_Directory;
    Unfreeze_Command   : constant String := "chmod 777 " & View_Directory;

    Remove_Recursive_Command   : constant String := "rm -r " & View_Directory;
    Unfreeze_Recursive_Command : constant String :=
       "chmod -R 777 " & View_Directory;


begin

    Log.Put_Line  
       (Message => "Destroy_View_Preprocess ( host_path_name =>" &
                      Naming.Get_Simple_Name (Host_Path_Name) & ")",
        Kind    => Profile.Sharp_Msg);

    Simple_Status.Initialize (Status);

    -- Acquire a remote connection to the target
    Acquire_Connection  
       (Remote_Connection => Remote_Connection,
        Remote_Machine    => Remote_Machine,
        Status            => Status);

    if not Simple_Status.Error (Status) then
        begin
            -- Delete the Ada libraries contained in the view directory.
            -- Then remove the view directory and everything
            -- contained therein.

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

            Rci.Execute_Command  
               (Command_Line          => Unfreeze_Recursive_Command,
                Remote_Connection     => Remote_Connection,
                Status                => Status,
                Error_Pattern         => "",
                Parse_Error_Output    => False,
                Parse_Standard_Output => False,
                Show_Parsed_Output    => True,
                Trace_Command         => Trace_Rci_Commands);

            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 itself.
            Log.Put_Line  
               (Message => "Executing remote command: " & Unfreeze_Command,
                Kind    => Profile.Note_Msg);

            Rci.Execute_Command  
               (Command_Line          => Unfreeze_Command,
                Remote_Connection     => Remote_Connection,
                Status                => Status,
                Error_Pattern         => "",
                Parse_Error_Output    => False,
                Parse_Standard_Output => False,
                Show_Parsed_Output    => True,
                Trace_Command         => Trace_Rci_Commands);

            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: " & Delete_Lib_Command,
                Kind    => Profile.Position_Msg);


            Rci.Execute_Command  
               (Command_Line          => Delete_Lib_Command,
                Remote_Connection     => Remote_Connection,
                Status                => Status,
                Error_Pattern         => "",
                Parse_Error_Output    => False,
                Parse_Standard_Output => False,
                Show_Parsed_Output    => True,
                Trace_Command         => Trace_Rci_Commands);

            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 the Ada library in " &
                          View_Directory);
            else
                Log.Put_Line  
                   (Message => "Executing remote command: " &
                                  Remove_Recursive_Command,
                    Kind    => Profile.Position_Msg);

                Rci.Execute_Command  
                   (Command_Line          => Remove_Recursive_Command,
                    Remote_Connection     => Remote_Connection,
                    Status                => Status,
                    Error_Pattern         => "",
                    Parse_Error_Output    => False,
                    Parse_Standard_Output => False,
                    Show_Parsed_Output    => True,
                    Trace_Command         => Trace_Rci_Commands);

                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);
                end if;

            end if;
        end;

        Rci.Release  
           (Remote_Connection => Remote_Connection,
            Status            => Status,
            Trace_Command     => Trace_Rci_Commands);
    else
        Log.Put_Line  
           (Message => Simple_Status.Message (Status),
            Kind    => Profile.Negative_Msg);
        Set_Status  
           (Status  => Status,
            Message => "Unable to acquire connection to " & Remote_Machine);
    end if;



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


E3 Meta Data

    nblk1=9
    nid=0
    hdr6=12
        [0x00] rec0=16 rec1=00 rec2=01 rec3=038
        [0x01] rec0=00 rec1=00 rec2=09 rec3=00c
        [0x02] rec0=1d rec1=00 rec2=02 rec3=022
        [0x03] rec0=17 rec1=00 rec2=03 rec3=03c
        [0x04] rec0=17 rec1=00 rec2=04 rec3=058
        [0x05] rec0=17 rec1=00 rec2=05 rec3=016
        [0x06] rec0=15 rec1=00 rec2=06 rec3=024
        [0x07] rec0=1f rec1=00 rec2=07 rec3=004
        [0x08] rec0=06 rec1=00 rec2=08 rec3=000
    tail 0x2153481da8565750e7e27 0x42a00088462062803