home *** CD-ROM | disk | FTP | other *** search
/ Oracle Video Server 3.0.3.1 / OVS_3031_NT.iso / win32 / install / win32.vrf < prev    next >
Encoding:
Text File  |  1997-09-16  |  8.0 KB  |  199 lines

  1. /* Copyright (c) Oracle Corporation 1993.  All Rights Reserved */
  2. /*****************************************************************************
  3.   NAME
  4.     win32.vrf - V3 common version analysis script for Windows 32-bit products
  5.  
  6.   DESCRIPTION
  7.     This script performs common version analysis functionality across product
  8.     VRF scripts.
  9.  
  10.     The variable 'doit' is set to a boolean indictating whether the
  11.     installation is to proceed.
  12.  
  13.     The variable 'version_status' is set to one of four values:
  14.     'upgrade,'downgrade,'reinstall and 'new_install.
  15.  
  16.     Optionally, upon calling this script the custom_version_analysis variable
  17.     can be set to TRUE, which causes a customized version analysis to be
  18.     asked when required.  To use this feature, the following variables must be
  19.     set prior to calling this script:
  20.  
  21.     custom_version_analysis = TRUE;
  22.     custom_version_analysis_reinstall_prompt = "Reinstall prompt";
  23.     custom_version_analysis_reinstall_content = "Reinstall content";
  24.     custom_version_analysis_reinstall_help = "Reinstall help";
  25.     custom_version_analysis_upgrade_prompt = "Upgrade prompt";
  26.     custom_version_analysis_upgrade_content = "Upgrade content";
  27.     custom_version_analysis_upgrade_help = "Upgrade help";
  28.     custom_version_analysis_downgrade_prompt = "Downgrade prompt";
  29.     custom_version_analysis_downgrade_content = "Downgrade content";
  30.     custom_version_analysis_downgrade_help = "Downgrade help";
  31.     custom_version_analysis_choice_reinstall = "Text shown for an reinstall";
  32.     custom_version_analysis_choice_upgrade = "Text shown for an upgrade";
  33.     custom_version_analysis_choice_downgrade = "Text shown for an downgrade";
  34.     custom_version_analysis_choice_fresh = "Text shown for a fresh install";
  35.     custom_version_analysis_choice_skip = "Text shown to skip install";
  36.  
  37.   CREATED
  38.     Siddhartha Agarwal, July 16, 1996
  39.  
  40.   MODIFIED    DD-MMM-YY  Reason
  41.  
  42. *****************************************************************************/
  43. {
  44.   product_label = product_interface_label(current_product);
  45.  
  46.   ui_product(product_label);
  47.   analyze_depend = nls("analyze_depend",
  48.                "Analyzing %%product_label%% Dependencies...");
  49.   ui_action(instantiate(analyze_depend));
  50.  
  51.   { 
  52.     /* Check to make sure the required version of the Installer is running */
  53.  
  54.     if (platform() == "nt")
  55.       required_version = product_version(ntinstver);
  56.     else
  57.       required_version = product_version(w95instver);
  58.  
  59.     if (earlier_version(installer_version,required_version,4))
  60.       {
  61.         temp = explode(required_version,".");
  62.         required_version = implode(list(first(temp),first(rest(temp)),
  63.                                         first(rest(rest(temp))),
  64.                                         first(rest(rest(rest(temp))))),".");
  65.     information_dialog(instantiate(instver_too_early));
  66.     return(FALSE);
  67.       }
  68.   }
  69.     [ 'UNBOUND_VARIABLE: continue(); ]
  70.  
  71.   mark
  72.     if (registered(product_name(current_product)))
  73.       {
  74.         registry = registration(product_name(current_product));
  75.         current_version = product_version(current_product);
  76.         installed_version = registry_version(registry);
  77.  
  78.         { evaluate("custom_version_analysis"); }
  79.         [ 'UNBOUND_VARIABLE: custom_version_analysis = FALSE; ]
  80.   
  81.         if (earlier_version(registry,current_version))
  82.           {
  83.             version_status = 'UPGRADE;
  84.  
  85.             if (custom_version_analysis)
  86.               {
  87.                 custom_version_analysis_choice =  
  88.            single_selection_dialog(custom_version_analysis_upgrade_prompt,
  89.                                    list(custom_version_analysis_choice_upgrade,
  90.                                         custom_version_analysis_choice_fresh,
  91.                                         custom_version_analysis_choice_skip),
  92.                                    custom_version_analysis_choice_upgrade,
  93.                                    custom_version_analysis_upgrade_content,
  94.                                    custom_version_analysis_upgrade_help);
  95.  
  96.                 if (custom_version_analysis_choice ==
  97.                     custom_version_analysis_choice_skip)
  98.                   doit = FALSE;
  99.                 else
  100.                   {
  101.                     doit = TRUE;
  102.  
  103.                     if (custom_version_analysis_choice ==
  104.                          custom_version_analysis_choice_fresh)
  105.                       version_status = 'NEW_INSTALL;
  106.                   }
  107.               }
  108.             else if (verbose)
  109.           doit = yesno_dialog(instantiate(reinstall_prompt01),TRUE,
  110.                   instantiate(reinstall_content01),
  111.                   instantiate(reinstall_help01));
  112.         else
  113.           doit = TRUE;
  114.  
  115.             if (not(doit))
  116.               if (internally_called)
  117.                 information_dialog(instantiate(reinstall_prompt02),
  118.                                    instantiate(reinstall_content02),
  119.                                    instantiate(reinstall_help02));
  120.           }
  121.         else
  122.           {
  123.             if (later_version(registry,current_version))
  124.               version_status = 'DOWNGRADE;
  125.             else
  126.               version_status = 'REINSTALL;
  127.  
  128.             if (custom_version_analysis)
  129.               {
  130.                 if (version_status == 'DOWNGRADE)
  131.                   custom_version_analysis_choice =  
  132.          single_selection_dialog(custom_version_analysis_downgrade_prompt,
  133.                                  list(custom_version_analysis_choice_skip,
  134.                                       custom_version_analysis_choice_downgrade,
  135.                                       custom_version_analysis_choice_fresh),
  136.                                  custom_version_analysis_choice_skip,
  137.                                  custom_version_analysis_downgrade_content,
  138.                                  custom_version_analysis_downgrade_help);
  139.                 else
  140.                   custom_version_analysis_choice =  
  141.          single_selection_dialog(custom_version_analysis_reinstall_prompt,
  142.                                  list(custom_version_analysis_choice_reinstall,
  143.                                       custom_version_analysis_choice_fresh,
  144.                                       custom_version_analysis_choice_skip),
  145.                                  custom_version_analysis_choice_reinstall,
  146.                                  custom_version_analysis_reinstall_content,
  147.                                  custom_version_analysis_reinstall_help);
  148.  
  149.                 if (custom_version_analysis_choice ==
  150.                     custom_version_analysis_choice_skip)
  151.                   doit = FALSE;
  152.                 else
  153.                   {
  154.                     doit = TRUE;
  155.  
  156.                     if (custom_version_analysis_choice ==
  157.                          custom_version_analysis_choice_fresh)
  158.                       version_status = 'NEW_INSTALL;
  159.                   }
  160.               }
  161.             else if (member(selected_products,current_product))
  162.               if (version_status == 'DOWNGRADE)
  163.                 doit = yesno_dialog(instantiate(reinstall_prompt03),FALSE,
  164.                                     instantiate(reinstall_content03),
  165.                                     instantiate(reinstall_help03));
  166.               else
  167.         {
  168.           if (verbose)
  169.             doit = yesno_dialog(instantiate(reinstall_prompt04),FALSE,
  170.                     instantiate(reinstall_content04),
  171.                     instantiate(reinstall_help04));
  172.           else
  173.             doit = TRUE;
  174.         }
  175.             else
  176.               doit = FALSE;
  177.           }
  178.       }
  179.     else
  180.       {
  181.         version_status = 'NEW_INSTALL;
  182.         doit = TRUE;
  183.       }
  184.  
  185.   if (doit)
  186.     {
  187.       if (not(member(products_for_installation,current_product)))
  188.     add(products_for_installation,current_product);
  189.     }
  190.   else if (member(selected_products,current_product))
  191.     ui_action(instantiate(nls("cancel_install",
  192.                               "Cancelling Installation of %%product_label%%...")));
  193.  
  194.   if(doit)
  195.     win32_remove_ocsm_key();   /* Removes earlier bindings of this product so 
  196.                                   the current install will be clean */
  197.   return(doit);
  198. }
  199.