/* Copyright (c) Oracle Corporation 1996.  All Rights Reserved */
/*****************************************************************************
  NAME
    gui60.dei - V3 deinstallation script for GUI Common Files 2.5.

  DESCRIPTION
    This script deinstalls GUI Common Files 6.0.

  MODIFIED   MM/DD/YY   Reason
*****************************************************************************/
{

    /******************************************************
    Set necessary variables for deinstallation
    *******************************************************/
    EXECUTE_SCRIPT = "SET_DEINSTALL_VARIABLES";
    execute("%installer_home%\d2kr2dei.usr");
    /******************************************************/

     /************************************
     Set the directory separator according
     to the current operating system.
     *************************************/
        dir_separator = "\";
    /************************************/

    { doit = execute("%installer_home%%dir_separator%%operating_system%.dei"); }
    [
        'UNBOUND_VARIABLE: signal('failure,instantiate(nls("instver_too_early2",
                                                           "The version of the Installer currently running is %%installer_version%%. The product(s) you have chosen to deinstall were installed with a later version of the Installer. Please use a later version of the Installer to deinstall these Product(s).")));
    ]

    if (doit)
    {
        /************************************************
        Create a label with the product name, and version
        *************************************************/
        EXECUTE_SCRIPT = "CREATE_LABEL";
        execute("%installer_home%%dir_separator%d2kr2dei.usr");
        /************************************************/

        installed_version = registry_version(current_registry);

        /***************************************
        Create a label with the product, version
        ****************************************/
        version_list    = explode(installed_version,".");
        msb_version_list= list(first(version_list),
                                  first(rest(version_list)));
        display_version = implode(msb_version_list,".");

        display_registry_label = "%registry_label% %display_version%";

        ui_product(instantiate(display_registry_label));
        /***************************************/

        /***********************
        Set up dependencies list
        ***********************/
        dependency_list = list("w32rsf80", "w32guil60", "w32mm60", "w32tk60", "w32ros60", "w32ucol60", "w32uat60", "w32ut60");

        /**************************/
        /*********************
        Deinstall dependencies
        **********************/
        GUI60_PRODUCT_STRING = "w32rsf80, w32guil60, w32mm60, w32tk60, w32ros60, w32ucol60, w32uat60, w32ut60";
        TUTIL60_PRODUCT_STRING = "w32tutil60";

        permit_retry_operations = TRUE;
        permit_ignore_operations = TRUE;
        permit_process_operations = TRUE;

       /**************************************************************
        Unreference & Deinstall Component Products if explicitly called
        ***************************************************************/
        EXECUTE_SCRIPT = "DEINSTALL_COMPONENTS";
        execute("%installer_home%%dir_separator%d2kr2dei.usr");
        /**********************************************************/

        /***********************************
        Unreference & Deinstall Dependencies
        ************************************/
        EXECUTE_SCRIPT = "UNREFENECE_DEPENDENCIES";
        execute("%installer_home%%dir_separator%d2kr2dei.usr");
        /***********************************/

        /*********************
        Unregister the product
        *********************/
        ui_product(instantiate(display_registry_label));
        ui_action(instantiate(deinstall_unregister));
        unregister(current_registry);
        /********************/

        /********************
        Deinstall the product
        *********************/
        ui_action(instantiate(deinstall_files));
        remove(deinst);
        /*********************/

        /********************/

        permit_retry_operation = FALSE;

    }
}
