home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 August (Alt) / CHIP 2005-08.1.iso / program / code / Firefox_1.0.5.exe / en-US.xpi / install.js
Encoding:
JavaScript  |  2005-07-11  |  5.4 KB  |  201 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 if (!platformStr.search(/^OS\/2/))
  75.       platformNode = 'win';
  76.     else
  77.       platformNode = 'unix';
  78.   }
  79.   else
  80.   {
  81.     var fOSMac  = getFolder("Mac System");
  82.     var fOSWin  = getFolder("Win System");
  83.  
  84.     logComment("fOSMac: "  + fOSMac);
  85.     logComment("fOSWin: "  + fOSWin);
  86.  
  87.     if(fOSMac != null)
  88.       platformNode = 'mac';
  89.     else if(fOSWin != null)
  90.       platformNode = 'win';
  91.     else
  92.       platformNode = 'unix';
  93.   }
  94.  
  95.   return platformNode;
  96. }
  97.  
  98. // main
  99. var srDest;
  100. var err;
  101. var fProgram;
  102. var platformNode;
  103. var searchPlugins = "searchplugins";
  104.  
  105. if (platformNode == 'mac')
  106. {
  107.   searchPlugins = "Search Plugins";
  108. }
  109. platformNode = getPlatform();
  110. logComment("initInstall: platformNode=" + platformNode);
  111. // end
  112. // end - OS type detection
  113.  
  114. var chromeNode = "en-US";
  115.  
  116. var regName    = "locales/mozilla/" + chromeNode;
  117. var chromeName = chromeNode + ".jar";
  118. var localeName = "locale/" + chromeNode + "/";
  119.  
  120. srDest = 1;
  121. err    = initInstall("en-US Langpack", "en-US", "1.0.5"); 
  122. logComment("initInstall: " + err);
  123.  
  124. fProgram = getFolder("Program");
  125. logComment("fProgram: " + fProgram);
  126.  
  127. if(verifyDiskSpace(fProgram, srDest))
  128. {
  129.   var chromeType = LOCALE;
  130.   var fTarget;
  131.  
  132.   err = addDirectory("",
  133.                      "bin",     // dir name in jar to extract 
  134.                      fProgram,  // Where to put this file (Returned from GetFolder) 
  135.                      "");       // Force Flag 
  136.   logComment("addDirectory() returned: " + err);
  137.  
  138.   if (err != SUCCESS)
  139.   {
  140.     logComment("addDirectory() to " + fProgram + "failed!");
  141.     // couldn't install globally, try installing to the profile
  142.     resetError();
  143.     chromeType |= PROFILE_CHROME;
  144.     fProgram = getFolder("Profile");
  145.     logComment("try installing to the user profile:" + fProgram);
  146.     err = addDirectory("","bin",fProgram,"");
  147.   }
  148.  
  149.   setPackageFolder(fProgram);
  150.  
  151.   // check return value
  152.   if (err == SUCCESS)
  153.   {
  154.     fTarget = getFolder("Program", "defaults");
  155.     logComment("fTarget: " + fTarget);
  156.     err = addDirectory("",
  157.                        "bin/defaults", // dir name in jar to extract 
  158.                        fTarget,        // Where to put this file (Returned from GetFolder) 
  159.                        "");            // subdir name to create relative to fProgram 
  160.     logComment("addDirectory() returned: " + err);
  161.  
  162.     fTarget = getFolder("Program", searchPlugins);
  163.     logComment("fTarget: " + fTarget);
  164.     err = addDirectory("",
  165.                        "bin/searchplugins", // dir name in jar to extract 
  166.                        fTarget,          // Where to put this file (Returned from GetFolder) 
  167.                        "");                 // subdir name to create relative to fProgram 
  168.     logComment("addDirectory() returned: " + err);
  169.  
  170.     // register chrome
  171.     var cf = getFolder(fProgram, "chrome/"+chromeName);
  172.  
  173.     registerChrome(chromeType, cf, "locale/global/");
  174.     registerChrome(chromeType, cf, "locale/global-platform/");
  175.     registerChrome(chromeType, cf, "locale/global-region/");
  176.  
  177.     registerChrome(chromeType, cf, "locale/browser/");
  178.     registerChrome(chromeType, cf, "locale/browser-region/");
  179.     registerChrome(chromeType, cf, "locale/passwordmgr/");
  180.     registerChrome(chromeType, cf, "locale/mozapps/");
  181.  
  182.     registerChrome(chromeType, cf, "locale/necko/");
  183.     registerChrome(chromeType, cf, "locale/cookie/");
  184.     registerChrome(chromeType, cf, "locale/pippki/");
  185.     registerChrome(chromeType, cf, "locale/pipnss/");
  186.  
  187.  
  188.     err = performInstall(); 
  189.     logComment("performInstall() returned: " + err);
  190.   }
  191.   else
  192.   {
  193.     cancelInstall(err);
  194.     logComment("cancelInstall due to error: " + err);
  195.   }
  196. }
  197. else
  198.   cancelInstall(INSUFFICIENT_DISK_SPACE);
  199.  
  200. // end main
  201.