{ /* library of scripts called from Designer/2000 DEI scripts */ /* entry points: EXECUTE_SCRIPT == "DES2_PRODUCT_NAMES.DEI" EXECUTE_SCRIPT == "DES2_REF.DEI" EXECUTE_SCRIPT == "DES2_REG.DEI" EXECUTE_SCRIPT == "DES2_MAP.DEI" EXECUTE_SCRIPT == "DEINSTALL_DEPENDENCIES.DEI" EXECUTE_SCRIPT == "DEINSTALL_CHILDREN.DEI" EXECUTE_SCRIPT == "REMOVE_PATH.DEI" EXECUTE_SCRIPT == "MODIFY_REMOVE.DEI" entry points found in des2k_72.cmn EXECUTE_SCRIPT == "MODIFY_VARIABLES.CMN" EXECUTE_SCRIPT == "TRANSLATE_VARIABLES.CMN" EXECUTE_SCRIPT == "DES2_BB.DIS" EXECUTE_SCRIPT == "DES2_BB.REM" */ /************************************************************************** Check that all variables we might use are instantiated **************************************************************************/ { dummy = debug;} ['UNBOUND_VARIABLE: { debug = false; } ] { dummy = filename;} ['UNBOUND_VARIABLE: { filename = "unknown"; } ] filename_list = explode(current_script,"\/"); /* allow unix and dos/os2 seperators */ while (not(empty(filename_list))) { filename2 = first(filename_list); filename_list = rest(filename_list); } filename2 = "%filename%->%filename2%"; /* ... information_dialog("%filename2% %EXECUTE_SCRIPT%"); ... */ /************************************************************************** Values to signal script completion **************************************************************************/ script_completed = "completed"; script_failed = "failed"; script_return_value = 0; return_at_end = true; dei_script_ratchet = "7.2.96.5.6"; /************************************************************************** Start the different entry points **************************************************************************/ if ((EXECUTE_SCRIPT == "MODIFY_VARIABLES.CMN") || (EXECUTE_SCRIPT == "TRANSLATE_VARIABLES.CMN") || (EXECUTE_SCRIPT == "DES2_BB.DIS") || (EXECUTE_SCRIPT == "DES2_BB.REM")) { script_return_value = execute("%installer_home%\des2k_72.cmn"); if (return_at_end) return(script_return_value); } if (EXECUTE_SCRIPT == "DES2_PRODUCT_NAMES.DEI") { /* des2_product_names.dei */ /* script to set os independent product names */ /* [jewillia] */ /* generated from NT.PRD WIN95.PRD by prd2prod */ /* set product name variables */ /* EXECUTE_SCRIPT = "DES2_PRODUCT_NAMES.DEI"; */ /* already set */ execute("des2k_72.avf"); forms50_product = "w32forms50"; frun50_product = "w32frun50"; fdes50_product = "w32fdes50"; report30_product = "w32report30"; rrun30_product = "w32rrun30"; rdes30_product = "w32rdes30"; graph30_product = "w32graph30"; grun30_product = "w32grun30"; gdes30_product = "w32gdes30"; forms60_registry_filename = "FORMS60"; report60_registry_filename = "REPORT60"; graph60_registry_filename = "GRAPH60"; { header_products = list(); { add(header_products, odes65_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, des2_72_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, orepos10_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, repos61_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, obpd10_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, jdee30_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, obm10_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, cksr40_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, desrep61_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, desrep11_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, desrep10_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, desbs61_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, odd61_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, chelp72_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, cdoc72_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, olment60_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, patches_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, despsr70_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, bugfix10_product); } ['UNBOUND_VARIABLE: continue(); ] { add(header_products, firstp61_product); } ['UNBOUND_VARIABLE: continue(); ] } /*************************************************** clear file ownership variables (a substitution variable in the subgroup field in each .map file that is used to define the source of the file under the dve root) ***************************************************/ case_file_ownership_list = list(); add(case_file_ownership_list,"case_al"); add(case_file_ownership_list,"case_aw"); add(case_file_ownership_list,"case_bm"); add(case_file_ownership_list,"case_cdi"); add(case_file_ownership_list,"case_cds"); add(case_file_ownership_list,"case_cdu"); add(case_file_ownership_list,"case_cf"); add(case_file_ownership_list,"case_drsc"); add(case_file_ownership_list,"case_cflpt"); add(case_file_ownership_list,"case_ck"); add(case_file_ownership_list,"case_ckt"); add(case_file_ownership_list,"case_ckrau"); add(case_file_ownership_list,"case_ckrpt"); add(case_file_ownership_list,"case_ckprp"); add(case_file_ownership_list,"case_repsrb"); add(case_file_ownership_list,"case_cksr"); add(case_file_ownership_list,"case_ckutl"); add(case_file_ownership_list,"case_repjava"); add(case_file_ownership_list,"case_common"); add(case_file_ownership_list,"case_cr"); add(case_file_ownership_list,"case_cv"); add(case_file_ownership_list,"case_cw"); add(case_file_ownership_list,"case_cws"); add(case_file_ownership_list,"case_cwz"); add(case_file_ownership_list,"case_cwsctb"); add(case_file_ownership_list,"case_cwbs_solaris"); add(case_file_ownership_list,"case_d2k"); add(case_file_ownership_list,"case_dev2kgen"); add(case_file_ownership_list,"case_do"); add(case_file_ownership_list,"case_dw"); add(case_file_ownership_list,"case_f50"); add(case_file_ownership_list,"case_ga"); add(case_file_ownership_list,"case_gg"); add(case_file_ownership_list,"case_ia"); add(case_file_ownership_list,"case_leg"); add(case_file_ownership_list,"case_model"); add(case_file_ownership_list,"case_nn"); add(case_file_ownership_list,"case_occs"); add(case_file_ownership_list,"case_occspl"); add(case_file_ownership_list,"case_ol"); add(case_file_ownership_list,"case_ol8"); add(case_file_ownership_list,"case_olcpp"); add(case_file_ownership_list,"case_olrm"); add(case_file_ownership_list,"case_pcc"); add(case_file_ownership_list,"case_plsql"); add(case_file_ownership_list,"case_products"); add(case_file_ownership_list,"case_rm"); add(case_file_ownership_list,"case_rmu"); add(case_file_ownership_list,"case_rmpl"); add(case_file_ownership_list,"case_rpc"); add(case_file_ownership_list,"case_rs"); add(case_file_ownership_list,"case_rspl"); add(case_file_ownership_list,"case_sm"); add(case_file_ownership_list,"case_sm2"); add(case_file_ownership_list,"case_sqllib"); add(case_file_ownership_list,"case_sqlnet"); add(case_file_ownership_list,"case_tk"); add(case_file_ownership_list,"case_ut"); add(case_file_ownership_list,"case_wiz"); add(case_file_ownership_list,"case_ide"); add(case_file_ownership_list,"case_jdk"); add(case_file_ownership_list,"case_jfapi"); add(case_file_ownership_list,"case_jrapi"); add(case_file_ownership_list,"case_cmax"); add(case_file_ownership_list,"case_doc"); add(case_file_ownership_list,"case_firstp"); add(case_file_ownership_list,"case_olj"); add(case_file_ownership_list,"case_doj"); add(case_file_ownership_list,"case_smj"); add(case_file_ownership_list,"case_zro"); add(case_file_ownership_list,"case_testing"); add(case_file_ownership_list,"case_unknown"); add(case_file_ownership_list,"case_symbols"); add(case_file_ownership_list,"case_tools"); add(case_file_ownership_list,"case_install"); add(case_file_ownership_list,"case_japanese"); add(case_file_ownership_list,"case_korean"); add(case_file_ownership_list,"case_obsolete"); add(case_file_ownership_list,"case_static"); add(case_file_ownership_list,"case_manual"); add(case_file_ownership_list,"case_stage_process"); add(case_file_ownership_list,"case_rob"); case_al = ""; case_aw = ""; case_bm = ""; case_cdi = ""; case_cds = ""; case_cdu = ""; case_cf = ""; case_drsc = ""; case_cflpt = ""; case_ck = ""; case_ckt = ""; case_ckrau = ""; case_ckrpt = ""; case_ckprp = ""; case_repsrb = ""; case_cksr = ""; case_ckutl = ""; case_repjava = ""; case_common = ""; case_cr = ""; case_cv = ""; case_cw = ""; case_cws = ""; case_cwz = ""; case_cwsctb = ""; case_cwbs_solaris = ""; case_d2k = ""; case_dev2kgen = ""; case_do = ""; case_dw = ""; case_f50 = ""; case_ga = ""; case_gg = ""; case_ia = ""; case_leg = ""; case_model = ""; case_nn = ""; case_occs = ""; case_occspl = ""; case_ol = ""; case_ol8 = ""; case_olcpp = ""; case_olrm = ""; case_pcc = ""; case_plsql = ""; case_products = ""; case_rm = ""; case_rmu = ""; case_rmpl = ""; case_rpc = ""; case_rs = ""; case_rspl = ""; case_sm = ""; case_sm2 = ""; case_sqllib = ""; case_sqlnet = ""; case_tk = ""; case_ut = ""; case_wiz = ""; case_ide = ""; case_jdk = ""; case_jrapi = ""; case_jfapi = ""; case_cmax = ""; case_doc = ""; case_firstp = ""; case_olj = ""; case_doj = ""; case_smj = ""; case_zro = ""; case_testing = ""; case_unknown = ""; case_symbols = ""; case_tools = ""; case_install = ""; case_japanese = ""; case_korean = ""; case_obsolete = ""; case_static = ""; case_manual = ""; case_stage_process = ""; case_rob = ""; while(not(empty(case_file_ownership_list))) { next_file_ownership_entry = first(case_file_ownership_list); case_file_ownership_list = rest(case_file_ownership_list); /* set the entry to be blank in the global namespace */ if (next_file_ownership_entry == "case_symbols") { windows_sys_dir = windows_system_directory(); set(next_file_ownership_entry, windows_sys_dir, 'GLOBAL); } else { set(next_file_ownership_entry, "", 'GLOBAL); } } EXECUTE_SCRIPT = script_completed; script_return_value = 0; if (return_at_end) return(script_return_value); } if (EXECUTE_SCRIPT == "DES2_REF.DEI") { /* des2_ref.dei */ /* standard deinstall script to dereference dependent products returns: none */ { /********************************************************************** Say who we are **********************************************************************/ installed_version = registry_version(current_registry); 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)); /********************************************************************** the variable oracle_key is not defined for de-install (it is a function of the win32.stp run at install time and not the win32.zoo that gets copied to the client) **********************************************************************/ { oracle_key = translate("SOFTWARE", "%shared_oracle_home%\bin\oracle.key","\", 'STRINGSONLY); oracle_key = "software\%oracle_key%"; } ['FILE_NOT_FOUND(A,B,C,D): oracle_key = "SOFTWARE\ORACLE";] /********************************************************************** De-reference products we will later de-install **********************************************************************/ dereference_list = list(); /* de-install list now stored as the reference_list in the registry */ /* union(dereference_list, deinstall_list); */ ini_section = registry_filename(current_registry); { case_translate_list = list("REFERENCE_LIST",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; deinstall_string_list = execute("%installer_home%\des2k_72.cmn"); deinstall_list = explode(deinstall_string_list,","); } ['UNBOUND_ENVIRONMENT_VARIABLE: deinstall_list = list();] union(dereference_list, deinstall_list); while (not(empty(dereference_list))) { next_product = first(dereference_list); dereference_list = rest(dereference_list); if (registered(next_product)) { /* remove any reference from self product to dependent */ /* child products are self-dereferenced (if curremt product is user selected) in the section which de-installs them */ { dependent_registry = registration(next_product); current_registry_name = registry_name(current_registry); dependent_registry_name = registry_name(dependent_registry); unreference(dependent_registry,current_registry); } ['DEFAULT(A,B,C,D): { information_dialog("%B% whilst removing reference from %current_registry_name% to %dependent_registry_name%. Recovering..."); } ] } } /* remove the info on who we are and what version number */ ini_section = registry_filename(current_registry); case_modify_list = list(); add(case_modify_list,list("product_name", "", ora_config, ini_section)); add(case_modify_list,list("product_version", "", ora_config, ini_section)); add(case_modify_list,list("product_status", "", ora_config, ini_section)); EXECUTE_SCRIPT = "MODIFY_VARIABLES.CMN"; execute("%installer_home%\des2k_72.cmn"); EXECUTE_SCRIPT = script_completed; script_return_value = 0; if (return_at_end) return(script_return_value); } } if (EXECUTE_SCRIPT == "DES2_REG.DEI") { /* des2_reg.dei */ /* standard deinstall script to get home variable input: case_regisration_product returns: location of home variable */ { { installed_registry = registration(case_registration_product); installed_registry_label = registry_interface_label(installed_registry); ini_section = registry_filename(installed_registry); /* NOTE - The following nls lines have been duplicated into user.avf for translation*/ /*If the lines are changed they need to copied into user.avf */ deinstall_which = nls("deinstall_which","Remove which %%installed_registry_label%%?"); deinstall_location = nls("deinstall_location", "%%installed_registry_label%% is not found in this directory. Do you wish to attempt to deinstall at this location anyway?"); deinstall_variable = registry_filename(installed_registry); { case_translate_list = list(deinstall_variable,ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; home_variable = execute("%installer_home%\des2k_72.cmn"); { if (not(exists(home_variable))) signal('UNBOUND_ENVIRONMENT_VARIABLE); } [ 'OS_ERROR: signal('UNBOUND_ENVIRONMENT_VARIABLE); 'INVALID_FILE_NAME: signal('UNBOUND_ENVIRONMENT_VARIABLE); 'PERMISSION_DENIED: signal('UNBOUND_ENVIRONMENT_VARIABLE); ] } [ 'UNBOUND_ENVIRONMENT_VARIABLE: { mark { home_variable = choose_directory_dialog(instantiate(deinstall_which),oracle_home); if(not(exists(instantiate("%home_variable%")))) /* Make sure this is the product's location */ { mark /* Allow user to backup to previous MARK level to select appropriate product location */ { deinstall_here = yesno_dialog(instantiate(deinstall_location), FALSE); if(not(deinstall_here)) { doit = FALSE; signal('FAILURE, "Halted deinstallation process."); } } } } } ] } ['UNREGISTERED_PRODUCT: home_variable = "";] EXECUTE_SCRIPT = script_completed; script_return_value = home_variable; if (return_at_end) return(script_return_value); } } if (EXECUTE_SCRIPT == "DES2_MAP.DEI") { /* des2_map.dei */ /* standard deinstall script to set variables used in map files input: case_map_variables (a list of atoms) */ { /*************************************************** Set variables for program groups for .MAP files ***************************************************/ if (platform() == "win95") platfrm = "Win95"; if (platform() == "nt") platfrm = "NT"; /* instead of hard coding the program group names, get it from the registry. These values can be used as defaults if necessary. */ /* DES2K_R61_GROUP = "Designer 2000 R2.1"; DES2K_R61_BULLETINS = "Designer 2000 R2.1 Bulletins"; DES2K_R61_TUTORIAL = "Designer 2000 R2.1 Tutorial"; ODD_R61_GROUP = "Object Database Designer R2.1"; ODD_R61_BULLETINS = "ODD R2.1 Bulletins"; ODD_R61_TUTORIAL = "ODD R2.1 HandsOn Workshop"; */ ini_section = registry_filename(current_registry); if(member(case_map_variables,'DES2K_R61_GROUP)) { case_translate_list = list("DES2K_R61_GROUP",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; DES2K_R61_GROUP = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: DES2K_R61_GROUP = "Designer 2000 R2.1"; ] if(member(case_map_variables,'DES2K_R61_BULLETINS)) { case_translate_list = list("DES2K_R61_BULLETINS",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; DES2K_R61_BULLETINS = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: DES2K_R61_BULLETINS = "Designer 2000 R2.1 Bulletins"; ] if(member(case_map_variables,'DES2K_R61_TUTORIAL)) { case_translate_list = list("DES2K_R61_TUTORIAL",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; DES2K_R61_TUTORIAL = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: DES2K_R61_TUTORIAL = "Designer 2000 R2.1 Tutorial"; ] if(member(case_map_variables,'ODD_R61_GROUP)) { case_translate_list = list("ODD_R61_GROUP",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; ODD_R61_GROUP = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: ODD_R61_GROUP = "Object Database Designer R2.1"; ] if(member(case_map_variables,'ODD_R61_BULLETINS)) { case_translate_list = list("ODD_R61_BULLETINS",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; ODD_R61_BULLETINS = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: ODD_R61_BULLETINS = "ODD R2.1 Bulletins"; ] if(member(case_map_variables,'ODD_R61_TUTORIAL)) { case_translate_list = list("ODD_R61_TUTORIAL",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; ODD_R61_TUTORIAL = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: ODD_R61_TUTORIAL = "ODD R2.1 HandsOn Workshop"; ] if(member(case_map_variables,'REPOS_R10_GROUP)) { case_translate_list = list("REPOS_R10_GROUP",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; REPOS_R10_GROUP = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: REPOS_R10_GROUP = "Oracle Repository R1.0"; ] if(member(case_map_variables,'REPOS_R10_BULLETINS)) { case_translate_list = list("REPOS_R10_BULLETINS",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; REPOS_R10_BULLETINS = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: REPOS_R10_BULLETINS = "Oracle Repository R1.0 Bulletins"; ] if(member(case_map_variables,'REPOS_R10_TUTORIAL)) { case_translate_list = list("REPOS_R10_TUTORIAL",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; REPOS_R10_TUTORIAL = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: REPOS_R10_TUTORIAL = "Oracle Repository R1.0 HandsOn Workshop"; ] if(member(case_map_variables,'OBM_R10_GROUP)) { case_translate_list = list("OBM_R10_GROUP",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; OBM_R10_GROUP = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: OBM_R10_GROUP = "JDEE R3.0"; ] if(member(case_map_variables,'OBM_R10_BULLETINS)) { case_translate_list = list("OBM_R10_BULLETINS",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; OBM_R10_BULLETINS = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: OBM_R10_BULLETINS = "JDEE R3.0 Bulletins"; ] if(member(case_map_variables,'OBM_R10_TUTORIAL)) { case_translate_list = list("OBM_R10_TUTORIAL",ora_config,ini_section); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; OBM_R10_TUTORIAL = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: OBM_R10_TUTORIAL = "JDEE R3.0 HandsOn Workshop"; ] EXECUTE_SCRIPT = script_completed; script_return_value = 0; if (return_at_end) return(script_return_value); } } if (EXECUTE_SCRIPT == "DEINSTALL_DEPENDENCIES.DEI") { /* deinstall_dependencies.dei */ /* standard deinstall script to deinstall referenced products */ { ui_product(instantiate(display_registry_label)); /********************************************************************** Some generic issues - should really be called seperately **********************************************************************/ if (empty(all_child_registrations(current_registry))) { /* remove any generic components of the ini section */ ini_section = registry_filename(current_registry); case_modify_list = list(); add(case_modify_list,list("REPLICATE_BIN", "", ora_config, ini_section)); add(case_modify_list,list("REPLICATE_VARIABLES", "", ora_config, ini_section)); add(case_modify_list,list("REFERENCE_LIST", "", ora_config, ini_section)); EXECUTE_SCRIPT = "MODIFY_VARIABLES.CMN"; execute("%installer_home%\des2k_72.cmn"); } /********************************************************************** call remove for the dependent products (they may or may not remove themselves) **********************************************************************/ while (not(empty(deinstall_list))) { next_product = first(deinstall_list); deinstall_list = rest(deinstall_list); if (registered(next_product)) { /* deinstall referenced products */ dependent_registry = registration(next_product); deinstall(dependent_registry); } } /* the other products called above will have changed the display - restore it */ ui_product(instantiate(display_registry_label)); EXECUTE_SCRIPT = script_completed; script_return_value = 0; if (return_at_end) return(script_return_value); } } if (EXECUTE_SCRIPT == "DEINSTALL_CHILDREN.DEI") { /* deinstall_children.dei */ /* standard deinstall script to deinstall child products */ { ui_product(instantiate(display_registry_label)); /********************************************************************** Check to see if self is selected otherwise don't delete children **********************************************************************/ if (member(registration("selected_registries"),current_registry)) { /********************************************************************** find all registered children **********************************************************************/ /* make the list in reverse hierarchical order since children must be removed before a parent */ child_deinstall_list = list(); children_list = all_child_registrations(current_registry); while (not(empty(children_list))) { next_child = first(children_list); children_list = rest(children_list); grandchild_list = all_child_registrations(next_child); union(children_list,grandchild_list); /* add(child_deinstall_list,registry_name(next_child)); */ child_deinstall_list = cons(registry_name(next_child), child_deinstall_list); } /********************************************************************** De-reference products we will later de-install **********************************************************************/ dereference_list = list(); union(dereference_list, child_deinstall_list); while (not(empty(dereference_list))) { next_product = first(dereference_list); dereference_list = rest(dereference_list); if (registered(next_product)) { /* remove any reference from chile product to self or others */ dependent_registry = registration(next_product); unreference(dependent_registry,current_registry); if (member(header_products, registry_name(current_registry))) { /* remove self references from child products to force de-install */ unreference(dependent_registry); /* remove other references from child products to force de-install */ child_dependencies = registry_references(dependent_registry); while (not(empty(child_dependencies))) { { next_dependency = first(child_dependencies); child_dependencies = rest(child_dependencies); unreference(dependent_registry, next_dependency); } ['Default(A,B,C,D): { /* information_dialog("%B%"); */ information_dialog("Internal Error - %C%(%D%); %A% whilst removing reference from %dependent_registry% to %next_dependency%. Recovering..."); } ] } } } } /********************************************************************** call remove for the child products (they may or may not remove themselves depending on references to them - see above) **********************************************************************/ while (not(empty(child_deinstall_list))) { next_product = first(child_deinstall_list); child_deinstall_list = rest(child_deinstall_list); if (registered(next_product)) { /* deinstall referenced products */ dependent_registry = registration(next_product); deinstall(dependent_registry); } } /* the other products called above will have changed the display - restore it */ ui_product(instantiate(display_registry_label)); } EXECUTE_SCRIPT = script_completed; script_return_value = 0; if (return_at_end) return(script_return_value); } } if (EXECUTE_SCRIPT == "REMOVE_PATH.DEI") { /* remove_path.dei */ /* standard install script to remove a path from an oracle.ini variable */ { next_add = case_remove_path_list; remove_variable = first(next_add); remove_value = first(rest(next_add)); remove_ini_file = first(rest(rest(next_add))); remove_ini_section = first(rest(rest(rest(next_add)))); case_translate_list = list(remove_variable,remove_ini_file,remove_ini_section); { EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; remove_variable_value = execute("%installer_home%\des2k_72.cmn"); } [ 'UNBOUND_ENVIRONMENT_VARIABLE: remove_variable_value = ""; ] remove_list = explode(remove_variable_value,";"); extract(remove_list,remove_value); remove_variable_value = implode(remove_list,";"); case_modify_list = list(remove_variable,remove_variable_value,remove_ini_file,remove_ini_section); EXECUTE_SCRIPT = "MODIFY_VARIABLES.CMN"; execute("%installer_home%\des2k_72.cmn"); EXECUTE_SCRIPT = script_completed; script_return_value = 0; if (return_at_end) return(script_return_value); } } if (EXECUTE_SCRIPT == "MODIFY_REMOVE.DEI") { /* modify_remove.dei */ /* standard install script to modify a path style ini variable by removing a fully qualified directory entry inputs : case_remove_list structured list */ { case_modify_list = list(); while(not(empty(case_remove_list))) { next_remove = first(case_remove_list); case_remove_list = rest(case_remove_list); remove_variable = first(next_remove); remove_value = first(rest(next_remove)); remove_ini_file = first(rest(rest(next_remove))); remove_ini_section = first(rest(rest(rest(next_remove)))); remove_location = rest(rest(rest(rest(next_remove)))); /* old way of doing it { remove_variable_value = v7_translate(remove_variable); } ['UNBOUND_ENVIRONMENT_VARIABLE: { remove_variable_value = ""; }] remove_variable_list = explode(remove_variable_value,";"); extract(remove_variable_list_list,remove_value); remove_variable_value = implode(remove_variable_list,";"); modify(remove_variable,remove_variable_value,remove_ini_file,remove_ini_file_section); */ { case_translate_list = list(remove_variable,remove_ini_file,remove_ini_section); union(case_translate_list,remove_location); EXECUTE_SCRIPT = "TRANSLATE_VARIABLES.CMN"; remove_variable_value = execute("%installer_home%\des2k_72.cmn"); } ['UNBOUND_ENVIRONMENT_VARIABLE: { remove_variable_value = ""; }] remove_variable_list = explode(remove_variable_value,";"); /* remove_value might be a semicolon seperated string list */ /* if (member(remove_variable_list,remove_value)) extract(remove_variable_list,remove_value); */ remove_value_list = explode(remove_value,";"); subtract(remove_variable_list,remove_value_list); remove_variable_value = implode(remove_variable_list,";"); remove_list = list(remove_variable,remove_variable_value,remove_ini_file,remove_ini_section); union(remove_list,remove_location); add(case_modify_list,remove_list); } EXECUTE_SCRIPT = "MODIFY_VARIABLES.CMN"; script_return_value = execute("%installer_home%\des2k_72.cmn"); if (return_at_end) return(script_return_value); } } /************************************************************************** Check the completion status **************************************************************************/ if (EXECUTE_SCRIPT == script_failed) { information_dialog("%filename2% internal error: script incorrectly called. Processing will continue."); } else if (not(EXECUTE_SCRIPT == script_completed)) { information_dialog("%filename2% internal error: script incorrectly called. Entry point %EXECUTE_SCRIPT% not found"); } return(script_return_value); }