/* Copyright (c) Oracle Corporation 1992.  All Rights Reserved */

/*****************************************************************************
  NAME
    plus80.ins - V8.0 installation script for SQL*Plus for Windows NT/95 8.0

  DESCRIPTION
    This script installs SQL*Plus for Windows NT/95

  OWNER
    Edan Kabatchnik

  MODIFIED    DD-MMM-YY  Reason

  kpotter     3/98       version update for 805 EE
  Aedsinge  06/06/95   Converted to Sql*Plus 3.2.2 script for NT/95
  AEdsinge  27-APR-95  Modified for shared Oracle, Windows Sql*Plus 3.1.3.7.2
  LMurphy   08-SEP-94  Modified for Windows SQL*Plus 3.1.3.5.x
  LMurphy   23-MAY-94  Modified for Windows SQL*Plus 3.1.2.2.6
  shall     04-FEB-93  Created from RSF 7.0 script.
*****************************************************************************/
{
        if (doit)
        {
                ins_ratchet = "8.0.5.0.0";

                /* OCSM Compliance */
                {
                        Win32_register_OCSM_product();
                }
                [
                        'default: win32_ocsm_register_product();
                ]

                /* Register the groups in the map file and specify which should get
                copied over under the three OCSM installation modes. */
                win32_register_ocsm_group(deinstl,    'MAXMODE);
                win32_register_ocsm_group(msg,        'MAXMODE);
                win32_register_ocsm_group(sql,        'MAXMODE);
                win32_register_ocsm_group(prefs,      'MAXMODE);
                win32_register_ocsm_group(exe,        'MAXMODE);
                win32_register_ocsm_group(stub,       'MAXMODE);
                win32_register_ocsm_group(doc,        'MAXMODE);

                win32_register_ocsm_group(deinstl,    'MEDMODE);
                win32_register_ocsm_group(msg,        'MEDMODE);
                win32_register_ocsm_group(sql,        'MEDMODE);
                win32_register_ocsm_group(prefs,      'MEDMODE);
                win32_register_ocsm_group(exe,        'MEDMODE);
                win32_register_ocsm_group(stub,       'MEDMODE);
                win32_register_ocsm_group(doc,        'MEDMODE);

                win32_register_ocsm_group(deinstl,    'MINMODE);
                win32_register_ocsm_group(msg,        'MINMODE);
                win32_register_ocsm_group(sql,        'MINMODE);
                win32_register_ocsm_group(prefs,      'MINMODE);
                win32_register_ocsm_group(exe,        'MINMODE);
                win32_register_ocsm_group(stub,       'MINMODE);
                win32_register_ocsm_group(doc,        'MINMODE);

                /* Register any variables in the map file that are not Installer variables. */
                win32_register_map_variable("PLUS80");
                win32_register_map_variable("oracle_group_name");

                /* Register product variables or keys created in the Windows registry by this INS script. */
                /* Associated with calls to: modify(...) later on in the code.                            */

                /* First, define the key and subkey. */
                okey    = "HKEY_LOCAL_MACHINE";
                osubkey = "SOFTWARE\ORACLE";

                win32_register_key(okey, osubkey, "SQLPATH",     'REPLICATE);
                win32_register_key(okey, osubkey, "PLUS80",      'REPLICATE);
                win32_register_key(okey, osubkey, "EXECUTE_SQL", 'REPLICATE);
                win32_register_key(okey, osubkey, "PLUS_DFLT",   'REPLICATE);
                /* End OCSM Compliance */

                execute("%installer_home%\%operating_system%.ins");

                permit_retry_operations = TRUE;

                ui_action(instantiate(prod_label));

                /*************************************************************/
                /* Shared Oracle code */
                modify("SQLPATH", sqlpath, "$oracle", (product_filename(current_product)));
                modify("PLUS80", plus80, "$oracle", (product_filename(current_product)));
                modify("EXECUTE_SQL", "PLUS80", "$oracle", (product_filename(current_product)));
                modify("PLUS_DFLT", "PLUS80", "$oracle", (product_filename(current_product)));
                /* end Shared Oracle code */
                /*************************************************************/

                ui_action(instantiate(installing_scripts));
                copy(deinstl, nls_abbreviation);

                ui_action(instantiate(installing_msbs));
                copy(msg, nls_abbreviation);

                ui_action(instantiate(installing_sql));
                copy(sql);

                ui_action(instantiate(installing_help));
                copy(doc);
                copy(prefs);

                ui_action(instantiate(installing_exec));
                copy(exe);
                copy(stub);

                permit_retry_operations = FALSE;

                install(w32rsf80);

                /* Logic to remove plus80.exe from registry for Windows 98 Fix */

                /* Remove Bad App key in registry for 98 */
                {win32_delete_key("HKEY_LOCAL_MACHINE", "SYSTEM\CurrentControlSet\Control\SessionManager\CheckBadApps400\plus80.exe"); }
                 [ 'INVALID_KEY, 'FILE_NOT_FOUND, 'PERMISSION_DENIED, 'OS_ERROR: continue(); ]

                {win32_delete_key("HKEY_LOCAL_MACHINE", "SYSTEM\CurrentControlSet\Control\SessionManager\CheckBadApps400\plus80w.exe"); }
                 [ 'INVALID_KEY, 'FILE_NOT_FOUND, 'PERMISSION_DENIED, 'OS_ERROR: continue(); ]

                /* end Windows 98 Fix */

                ui_product(product_label);

                permit_retry_operations = TRUE;

                ui_action(instantiate(registering));

                register(current_product);

                if (member(selected_products, current_product))
                        reference(current_product);

                reference(w32rsf80, current_product);

                permit_retry_operations = FALSE;
        }
}

