/* Copyright (c) Oracle Corporation 1996. All Rights Reserved */ /***************************************************************************** NAME nt.dei - V3 common deinstallation script for Windows 32-bit products DESCRIPTION This script performs common version analysis functionality across product DEI scripts. It returns the variable 'doit', indictating whether the deinstallation is to proceed. CREATED Siddhartha Agarwal, July 10, 1996 MODIFIED DD-MMM-YY Reason vrajkuma 13-01-97 doit is false if the product is part of any configurations. *****************************************************************************/ { registry_label = registry_interface_label(current_registry); ui_product(registry_label); { ui_action(instantiate(analyze_deinstall_depend)); } ['UNBOUND_VARIABLE: { ui_action(UI_deinstalling); }] /* If target home is default home, access software\oracle key structure */ { if (oracle_home_info == default_home_info) signal('UNBOUND_VARIABLE); else if (not(multiple_home_aware)) { signal('FAILURE,instantiate(moh_invalid_home)); } }['UNBOUND_VARIABLE: multiple_home_aware = FALSE; ] doit = FALSE; if (unreferenced(current_registry)) doit = TRUE; else if (member(registration("selected_registries"),current_registry)) if (uniquely_self_referenced(current_registry)) doit = TRUE; else { templist = registry_references(current_registry); extract(templist,current_registry); subtract(templist,registration("selected_registries")); subtract(templist,all_child_registrations(current_registry)); if (not(empty(templist))) doit = yesno_dialog(instantiate(deinstall_prompt01),FALSE, instantiate(deinstall_content01), instantiate(deinstall_help01)); else doit = TRUE; } { groups_ini = "%shared_installer_home%\groups.ini"; if (not(exists(groups_ini))) signal('FILE_NOT_FOUND); candidate_product = registry_name(current_registry); candidate_label = registry_interface_label(current_registry); group_sections = windows_initialization_file_sections(groups_ini); extract(group_sections,"CONFLICT RESOLUTION"); notify_groups_list = list(); while (not(empty(group_sections))) { candidate_section = first(group_sections); { product_list = get_configuration_products(candidate_section); if (member(product_list,candidate_product)) { add(notify_groups_list,candidate_section); } }['UNBOUND_ENVIRONMENT_VARIABLE: continue();] group_sections = rest(group_sections); } if (not(empty(notify_groups_list))) { { shared_products_in_use = shared_products_in_use; } ['UNBOUND_VARIABLE : shared_products_in_use = list(); /* Bad .avf */ ] add(shared_products_in_use, list(candidate_label,notify_groups_list)); doit = FALSE; } else { /* there could still be product installed on the client */ clients_list = get_all_clients(); clients_dir = translate("CLIENTS_DIR", "$ORACLE"); directorify(clients_dir); notify_clients_list = list(); chosen_product = registry_name(current_registry); while( not(empty(clients_list)) ) { client_name = first(clients_list); clients_rgs = "%clients_dir%\%client_name%.rgs"; configured_products = list(); sl = all_registrations(clients_rgs, 'shared); while(not(empty(sl))) { add(configured_products,registry_name(first(sl))); sl = rest(sl); } if( member(configured_products, chosen_product) ) add(notify_clients_list, client_name); clients_list = rest(clients_list); } if (not(empty(notify_clients_list))) { prod_clients = implode(notify_clients_list, ","); information_dialog(instantiate(configured_on_client), 'NOCANCEL); doit = FALSE; } } } ['FILE_NOT_FOUND: continue();] return(doit); }