home *** CD-ROM | disk | FTP | other *** search
/ MacFormat UK 131 - Disc 1 / MF_UK_131_1.iso / pc / Resources (classic) / Mozilla 1.1 / Installer Modules / browser.xpi / install.js
Encoding:
JavaScript  |  2002-08-26  |  7.9 KB  |  203 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.  
  97. function upgradeCleanup()
  98. {
  99.   // Obsolete files from Netscape 6.0 and Netscape 6.01 that
  100.   // need to be cleaned up.
  101.   deleteThisFile("Components", "DOMDataSource.shlb");
  102.   deleteThisFile("Components", "PSMGlue.shlb");
  103.   deleteThisFile("Components", "ucth.shlb");
  104.   deleteThisFile("Program",    "defaults/pref/config.js");
  105.   deleteThisFile("Program",    "defaults/pref/initpref.js");
  106.   deleteThisFile("Program",    "defaults/pref/macxprefs.js");
  107.   deleteThisFile("Program",    "defaults/wallet/URLFieldSchema.tbl");
  108.   deleteThisFile("Program",    "Essential Files/PSM.shlb");
  109.   deleteThisFolder("Program",  "psmdata");
  110.   deleteThisFolder("Program",  "res/samples");
  111.   deleteThisFolder("Program",  "res/throbber");
  112. }
  113.  
  114. var srDest = 20805;
  115.  
  116. var err = initInstall("Mozilla Navigator", "Browser", "1.1.0.2002082610"); 
  117. logComment("initInstall: " + err);
  118.  
  119. var fProgram = getFolder("Program");
  120. logComment("fProgram: " + fProgram);
  121.  
  122. if (verifyDiskSpace(fProgram, srDest))
  123. {
  124.     // Call upgradeCleanup() before addDirectory() in case we accidentaly
  125.     // delete files that we happen to be also installing.  This way, if we do,
  126.     // it will just get reinstalled.  This is for safety measure.
  127.     upgradeCleanup();
  128.     err = addDirectory("Program",
  129.                        "1.1.0.2002082610",
  130.                        "viewer",           // jar source folder
  131.                        fProgram,           // target folder 
  132.                        "",                 // target subdir 
  133.                        true );             // force flag 
  134.  
  135.     logComment("addDirectory() returned: " + err);
  136.  
  137.     var cf = getFolder("Chrome");
  138.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global-platform/");
  139.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator-platform/");
  140.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator-platform/");
  141.  
  142.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global-region/");
  143.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator-region/");
  144.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/editor-region/");
  145.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator-region/");
  146.  
  147.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global/");
  148.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/autoconfig/");
  149.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/cookie/");
  150.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/wallet/");
  151.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"content-packs.jar"),"content/content-packs/");
  152.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator/");
  153.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/editor/");
  154.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator/");
  155.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/necko/");
  156.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/mozldap/");
  157.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf, "forms.jar"),"content/forms/");
  158.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf, "forms.jar"),"skin/classic/forms/");
  159.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/communicator/");
  160.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/editor/");
  161.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/global/");
  162.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/messenger/");
  163.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/navigator/");
  164.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/communicator/");
  165.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/editor/");
  166.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/global/");
  167.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/messenger/");
  168.     registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/navigator/");
  169.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"help.jar"),"content/help/");
  170.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"pippki.jar"), "content/pippki/");
  171.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"pipnss.jar"), "content/pipnss/");
  172.     registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/xbl-marquee/");
  173.  
  174.     // make an alias to the browser on the desktop 
  175.     var desktopFolder = getFolder("Mac Desktop");
  176.     var ignoreErr = fileMacAlias(fProgram,      "Mozilla",   // source
  177.                              desktopFolder, "Mozilla");  // target
  178.     logComment("fileMacAlias() returned: " + ignoreErr);
  179.  
  180.     if (err==SUCCESS)
  181.     {
  182.         err = performInstall(); 
  183.         logComment("performInstall() returned: " + err);
  184.         if (! ('buildID' in Install))
  185.         {
  186.           logComment("Running Pre-Mozilla 0.9.1");
  187.           initInstall("Post-install Cleanup Utility", "Browser/xpicleanup", "1.1.0.2002082610");
  188.           fEssentialFiles = getFolder(fProgram, "Essential Files");
  189.           cleanupUtility = getFolder(fEssentialFiles, "XPICleanup");
  190.           err = File.execute(cleanupUtility);
  191.           logComment("execute() returned: " + err);
  192.           err = performInstall();
  193.         }
  194.     }
  195.     else
  196.     {
  197.         cancelInstall(err);
  198.         logComment("cancelInstall() due to error: " + err);
  199.     }
  200. }
  201. else
  202.     cancelInstall(INSUFFICIENT_DISK_SPACE);
  203.