/* Copyright (c) Oracle Corporation 1992, 1996.  All Rights Reserved */
/***************************************************************************
  NAME
    intsol60.ins - Installation script for Intersolv Datadirect Drivers

  DESCRIPTION
    This script installs the Intersolv Datadirect Drivers package.

  MODIFIED    MM/DD/YY    Reason
   pgupta     09/27/97    Created
 **************************************************************************/
{
        /*****************************
        Set the VRF-INS script ratchet
        ******************************/
        ins_ratchet = "6.0.0.0.0";

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

        permit_retry_operations  = TRUE;
        permit_ignore_operations = TRUE;
        permit_process_operations= TRUE;

        win32_register_OCSM_product();

        /***************************************************************
         Registering map variables except Installer_home and oracle_home
        ****************************************************************/
         win32_register_map_variable("OCA60");
         win32_register_map_variable("WINDOWS_SYS_DIR");
         win32_register_map_variable("SHARED_DLL");
        /****************************************
        Set Installer to only copy files that
        are newer than those previously installed
        *****************************************/

        permit_invisible_registrations = FALSE;
        overwrite_mode = 'UPDATE;

        /***************************************
        Check if any drivers are being installed.
        If not, end installation, do not install
        any parent level files
        ****************************************/
        if( empty(drivers_to_install) ||
                    member(chosen_stack_list, empty_stack) )
           {
            doit = FALSE;
/***
            information_dialog(instantiate(halt_driver_installation));
   Closed Bug 592796     ***/
        }

        if(doit)
        {
           /********************
           Install all of the
           parent level files
           ********************/
           current_product = parent_product;
           product_label = product_interface_label(current_product);
           ui_product(instantiate(display_product_label));

           ui_action(instantiate(install_files));
           copy(deinst);

           ui_action(instantiate(intsol_install));    /*install all parent level files*/
           copy(intsol1);
           ui_action(instantiate(intsol_install));    /*install all parent level files*/
           copy(intsol2);
           win32_register_OCSM_group(deinst,'MINMODE);
           /****
           win32_register_OCSM_group(intsol1,'MEDMODE);
           win32_register_OCSM_group(shrdll,"intsol2",'MEDMODE);
           *****/
           /******************/

           /***************************************
           Install the driver level files according
           to the drivers selected. Register and
           reference each of the drivers installed.
           ***************************************/
           {
             if (install_btrieve)
             {
              ui_action(instantiate(btrieve_install));
                 install(w32btrieve60);
             }
             if (install_db2)
             {
              ui_action(instantiate(db2_install));
                 install(w32db260);
             }
             if (install_dbase)
             {
              ui_action(instantiate(dbase_install));
                 install(w32dbase560);
             }
             if (install_excel)
             {
              ui_action(instantiate(excel_install));
                 install(w32excel60);
             }
             if (install_excel5)
             {
              ui_action(instantiate(excel_install));
                 install(w32excel560);
             }
             if (install_inf5)
             {
              ui_action(instantiate(informix_install));
                 install(w32inf560);
             }
             if (install_inf7)
             {
              ui_action(instantiate(informix_install));
                 install(w32inf760);
             }
             if (install_ing4)
             {
              ui_action(instantiate(ingres_install));
                 install(w32ing460);
             }
             if (install_oracle7)
             {
              ui_action(instantiate(oracle7_install));
                 install(w32oracle760);
             }
             if (install_paradox)
             {
              ui_action(instantiate(paradox_install));
                 install(w32paradox60);
             }
             if (install_sqlbase)
             {
              ui_action(instantiate(sqlbase_install));
                 install(w32sqlbase60);
             }
             if (install_sqlsrv)
             {
              ui_action(instantiate(sqlserver_install));
                 install(w32sqlsrv460);
             }
             if (install_sqlsrv6)
             {
              ui_action(instantiate(sqlserver_install));
                 install(w32sqlsrv660);
             }
             if (install_sybase)
             {
              ui_action(instantiate(sybase_install));
                 install(w32syb1060);
             }
             if (install_ascii)
             {
              ui_action(instantiate(ascii_install));
                 install(w32ascii60);
             }
           }

        /* d2drvins.exe registers the drivers so that ODBC can see them */

        permit_retry_operations = FALSE;

        overwrite_mode = 'ALWAYS;

        /********************************
        Register and Reference the main
        product and remove delold.
        *********************************/
        EXECUTE_SCRIPT = "REGISTER_REFERENCE_PRODUCT";
        execute("%installer_home%%dir_separator%d2kr2ins.usr");

        /***************************************
        Install System Support Files if required
        ****************************************/
        if(install_required_product)
            install(REQUIRED_PRODUCT);
        /****************************/

        /*********************
        Reference dependencies
        **********************/
        ui_action(instantiate(reference_dependencies));

        while(not(empty(dependency_list)))
        {
            {reference(parent_product, first(dependency_list));}
            ['UNREGISTERED_PRODUCT: continue();]

            dependency_list = rest(dependency_list);
        }
        /*********************/

        permit_retry_operations = FALSE;
        permit_invisible_registrations = TRUE;

    }
    [
         'UNREGISTERED_PRODUCT: continue();
         'CANCEL: signal('FAILURE, instantiate(halt_installation));
    ]

}
