home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 January / 01_02.iso / linux / mozilla-installer_linux / xpi / psm.xpi / install.js
Text File  |  2001-11-20  |  4KB  |  144 lines

  1. // this function verifies disk space in kilobytes
  2. function verifyDiskSpace(dirPath, spaceRequired)
  3. {
  4.   var spaceAvailable;
  5.  
  6.   // Get the available disk space on the given path
  7.   spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  8.  
  9.   // Convert the available disk space into kilobytes
  10.   spaceAvailable = parseInt(spaceAvailable / 1024);
  11.  
  12.   // do the verification
  13.   if(spaceAvailable < spaceRequired)
  14.   {
  15.     logComment("Insufficient disk space: " + dirPath);
  16.     logComment("  required : " + spaceRequired + " K");
  17.     logComment("  available: " + spaceAvailable + " K");
  18.     return(false);
  19.   }
  20.  
  21.   return(true);
  22. }
  23.  
  24. // this function deletes a file if it exists
  25. function deleteThisFile(dirKey, file)
  26. {
  27.   var fFileToDelete;
  28.  
  29.   fFileToDelete = getFolder(dirKey, file);
  30.   logComment("File to delete: " + fFileToDelete);
  31.   if(File.isFile(fFileToDelete))
  32.   {
  33.     File.remove(fFileToDelete);
  34.     return(true);
  35.   }
  36.   else
  37.     return(false);
  38. }
  39.  
  40. // this function deletes a folder if it exists
  41. function deleteThisFolder(dirKey, folder, recursiveDelete)
  42. {
  43.   var fToDelete;
  44.  
  45.   if(typeof recursiveDelete == "undefined")
  46.     recursiveDelete = true;
  47.  
  48.   fToDelete = getFolder(dirKey, folder);
  49.   logComment("folder to delete: " + fToDelete);
  50.   if(File.isDirectory(fToDelete))
  51.   {
  52.     File.dirRemove(fToDelete, recursiveDelete);
  53.     return(true);
  54.   }
  55.   else
  56.     return(false);
  57. }
  58.  
  59. // OS type detection
  60. // which platform?
  61. function getPlatform()
  62. {
  63.   var platformStr;
  64.   var platformNode;
  65.  
  66.   if('platform' in Install)
  67.   {
  68.     platformStr = new String(Install.platform);
  69.  
  70.     if (!platformStr.search(/^Macintosh/))
  71.       platformNode = 'mac';
  72.     else if (!platformStr.search(/^Win/))
  73.       platformNode = 'win';
  74.     else
  75.       platformNode = 'unix';
  76.   }
  77.   else
  78.   {
  79.     var fOSMac  = getFolder("Mac System");
  80.     var fOSWin  = getFolder("Win System");
  81.  
  82.     logComment("fOSMac: "  + fOSMac);
  83.     logComment("fOSWin: "  + fOSWin);
  84.  
  85.     if(fOSMac != null)
  86.       platformNode = 'mac';
  87.     else if(fOSWin != null)
  88.       platformNode = 'win';
  89.     else
  90.       platformNode = 'unix';
  91.   }
  92.  
  93.   return platformNode;
  94. }
  95.  
  96. function upgradeCleanup()
  97. {
  98.   // Obsolete files from Netscape 6.0 and Netscape 6.01 that
  99.   // need to be cleaned up.
  100.   deleteThisFolder("Communicator", "psm");
  101. }
  102.  
  103. var srDest = 1620;
  104. var err;
  105.  
  106. err = initInstall("Netscape Personal Security Manager",
  107.                   "Netscape Personal Security Manager", "0.9.5.2001112012"); 
  108. logComment("initInstall: " + err);
  109.  
  110. var communicatorFolder = getFolder("Communicator");
  111. logComment("communicatorFolder: " + communicatorFolder);
  112.  
  113. if(verifyDiskSpace(communicatorFolder, srDest))
  114. {
  115.   // Call upgradeCleanup() before addDirectory() in case we accidentaly
  116.   // delete files that we happen to be also installing.  This way, if we do,
  117.   // it will just get reinstalled.  This is for safety measure.
  118.   upgradeCleanup();
  119.   err = addDirectory("Program",          // reg entry
  120.                      "0.9.5.2001112012",        // version
  121.                      "bin",              // jar source
  122.                      communicatorFolder, // target folder
  123.                      "",              // relative subdir
  124.                      true );             // force flag
  125.   logComment("addDirectory() returned: " + err);
  126.  
  127.   if(err==SUCCESS)
  128.   {
  129.     var pki = getFolder("Chrome","pippki.jar");
  130.     var nss = getFolder("Chrome","pipnss.jar");
  131.     registerChrome(CONTENT | DELAYED_CHROME, pki, "content/pippki/");
  132.     registerChrome(CONTENT | DELAYED_CHROME, nss, "content/pipnss/");
  133.     err = performInstall(); 
  134.     logComment("performInstall() returned: " + err);
  135.   }
  136.   else
  137.   {
  138.     cancelInstall();
  139.     logComment("cancelInstall() due to error: "+err); 
  140.   }
  141. }
  142. else
  143.     cancelInstall(INSUFFICIENT_DISK_SPACE);
  144.