home *** CD-ROM | disk | FTP | other *** search
/ Chip: Windows 2000 Professional Resource Kit / W2KPRK.iso / apps / perl / ActivePerl.exe / _setup.lib / uninstall.pm < prev   
Encoding:
Perl POD Document  |  1999-10-14  |  2.6 KB  |  146 lines

  1. #
  2. # Uninstall.pm
  3. #
  4. # Author: Michael Smith (mikes@ActiveState.com)
  5. #
  6. # Copyright ⌐ 1998 ActiveState Tool Corp., all rights reserved.
  7. #
  8. ###########################################################
  9. package Uninstall;
  10. use Data::Dumper;
  11. use strict;
  12.  
  13. #
  14. # Uninstall configuration
  15. #
  16. ###########################################################
  17. my $data_file = 'p_uninst.dat';
  18. my $data_path = '';
  19. my $app_name  = '';
  20.  
  21. #
  22. # Things we need to track
  23. #
  24. ###########################################################
  25.  
  26. # InstallShiel uninstall data file
  27. my $is_uninstall_string;
  28.  
  29. # Directories added to the PATH environment variable
  30. my @path_info;
  31.  
  32. # IIS4 configuration information
  33. my @iis_virt_dir;
  34. my %iis_script_map;
  35.  
  36. # Netscape configuration information
  37. my $ns_config_dir;
  38.  
  39. my %lines_in_file;
  40.  
  41. # Additional files and directories
  42. my @directory;
  43. my @file;
  44.  
  45. #
  46. # Function defininitions
  47. #
  48. ###########################################################
  49.  
  50. # Set_DataPath
  51. sub Set_DataPath {
  52.     $data_path = $_[0];
  53. }
  54.  
  55. # Set_AppName
  56. sub Set_AppName {
  57.     $app_name = $_[0];
  58. }
  59.  
  60. # Get_DataFile
  61. sub Get_DataFile {
  62.     return "$data_path/$data_file";
  63. }
  64.  
  65. # Set_IS_UninstallString
  66. sub Set_IS_UninstallString {
  67.     $is_uninstall_string = $_[0];
  68. }
  69.  
  70. # Add_PathInfo
  71. sub Add_PathInfo {
  72.     push(@path_info, $_[0]);
  73. }
  74.  
  75. # Add_IIS_VirtDir
  76. sub Add_IIS_VirtDir {
  77.     push(@iis_virt_dir, $_[0]);
  78. }
  79.  
  80. # Add_IIS_ScriptMap
  81. sub Add_IIS_ScriptMap {
  82.     my $virt_dir = $_[0];
  83.     my $file_ext = $_[1];
  84.     $virt_dir = '.' if $virt_dir eq '';
  85.     push(@{$iis_script_map{$virt_dir}}, $file_ext);
  86. }
  87.  
  88. # Set_NS_ConfigDir
  89. sub Set_NS_ConfigDir {
  90.     $ns_config_dir = $_[0];
  91. }
  92.  
  93. # Add_Line
  94. sub Add_Line {
  95.     my ($file, $line) = @_;
  96.     $file = lc($file);
  97.     push(@{$lines_in_file{$file}}, $line);
  98. }
  99.  
  100. # Add_File
  101. sub Add_File {
  102.     push(@file, $_[0]);
  103. }
  104.  
  105. # Add_Directory
  106. sub Add_Directory {
  107.     push(@directory, $_[0]);
  108. }
  109.  
  110. # Write_Data
  111. sub Write_Data {
  112.    my $data = Data::Dumper->Dump(
  113.         [
  114.           $app_name,
  115.           $is_uninstall_string,
  116.           \@path_info,
  117.           \@iis_virt_dir,
  118.           \%iis_script_map,
  119.           $ns_config_dir,
  120.           \%lines_in_file,
  121.           \@directory,
  122.           \@file
  123.         ],
  124.  
  125.         [qw(
  126.           app_name
  127.           is_uninstall_string
  128.           path_info
  129.           iis_virt_dir
  130.           iis_script_map
  131.           ns_config_dir
  132.           lines_in_file
  133.           directory
  134.           file
  135.         )]
  136.     );
  137.  
  138.     open(DATA, ">$data_path/$data_file");
  139.     print DATA $data;
  140.     close(DATA);
  141. }
  142.  
  143. 1;
  144. __END__
  145.  
  146.