home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 December / Chip_2001-12_cd1.bin / servis / mozilla_cz / regcz.xpi / install.js
Text File  |  2001-09-15  |  4KB  |  150 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 + " kB");
  17.     logComment("  available: " + spaceAvailable + " kB");
  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 + " file: " + fFileToDelete);
  31.   if(File.exists(fFileToDelete))
  32.   {
  33.     fileDelete(fFileToDelete);
  34.     return(true);
  35.   }
  36.   else
  37.     return(false);
  38. }
  39.  
  40. // this function deletes a folder (recursively) if it exists
  41. function deleteThisFolder(dirKey, folder)
  42. {
  43.   var fToDelete;
  44.  
  45.   fToDelete = getFolder(dirKey, folder);
  46.   logComment(folder + " folder: " + fToDelete);
  47.   if(File.exists(fToDelete))
  48.   {
  49.     File.dirRemove(fToDelete, true);
  50.     return(true);
  51.   }
  52.   else
  53.     return(false);
  54. }
  55.  
  56. // OS type detection
  57. // which platform?
  58. function getPlatform()
  59. {
  60.   var platformStr;
  61.   var platformNode;
  62.  
  63.   if('platform' in Install)
  64.   {
  65.     platformStr = new String(Install.platform);
  66.  
  67.     if (!platformStr.search(/^Macintosh/))
  68.       platformNode = 'mac';
  69.     else if (!platformStr.search(/^Win/))
  70.       platformNode = 'win';
  71.     else
  72.       platformNode = 'unix';
  73.   }
  74.   else
  75.   {
  76.     var fOSMac  = getFolder("Mac System");
  77.     var fOSWin  = getFolder("Win System");
  78.  
  79.     logComment("fOSMac: "  + fOSMac);
  80.     logComment("fOSWin: "  + fOSWin);
  81.  
  82.     if(fOSMac != null)
  83.       platformNode = 'mac';
  84.     else if(fOSWin != null)
  85.       platformNode = 'win';
  86.     else
  87.       platformNode = 'unix';
  88.   }
  89.  
  90.   return platformNode;
  91. }
  92.  
  93. var srDest = 50;
  94. var err;
  95. var fProgram;
  96. var platformNode;
  97.  
  98. platformNode = getPlatform();
  99. logComment("initInstall: platformNode=" + platformNode);
  100. // end
  101. // end - OS type detection
  102. // main
  103. // --- LOCALIZATION NOTE: translate only these ---
  104. var prettyName = "Czech(CZ) Region Pack";
  105. var chromeNode = "CZ";
  106. // --- END LOCALIZABLE RESOURCES ---
  107. var regName    = "locales/mozilla/" + chromeNode;
  108. var chromeName = chromeNode + ".jar";
  109. var localeName = "locale/" + chromeNode + "/";
  110.  
  111. err = initInstall(prettyName, regName, "0.9.4"); 
  112. logComment("initInstall: " + err);
  113.  
  114. fProgram = getFolder("Program");
  115. logComment("fProgram: " + fProgram);
  116.  
  117. if (verifyDiskSpace(fProgram, srDest))
  118. {
  119.     err = addDirectory("",
  120.                        "0.9.4",
  121.                        "bin",                    // dir name in jar to extract
  122.                        fProgram,                // Where to put this file (Returned from GetFolder)
  123.                        "",                        // subdir name to create relative to fProgram
  124.                        true);                    // Force Flag
  125.     logComment("addDirectory() returned: " + err);
  126.  
  127.     // register chrome
  128.     var cf = getFolder("Chrome");
  129.     registerChrome(LOCALE | DELAYED_CHROME, getFolder(cf, chromeName), localeName + "communicator-region/");
  130.     registerChrome(LOCALE | DELAYED_CHROME, getFolder(cf, chromeName), localeName + "editor-region/");
  131.     registerChrome(LOCALE | DELAYED_CHROME, getFolder(cf, chromeName), localeName + "global-region/");
  132.     registerChrome(LOCALE | DELAYED_CHROME, getFolder(cf, chromeName), localeName + "messenger-region/");
  133.     registerChrome(LOCALE | DELAYED_CHROME, getFolder(cf, chromeName), localeName + "navigator-region/");
  134.  
  135.     // check return value
  136.     if (err == SUCCESS)
  137.     {
  138.         err = performInstall(); 
  139.         logComment("performInstall() returned: " + err);
  140.         alert("Install completed successfully");
  141.     }
  142.     else
  143.     {
  144.         cancelInstall(err);
  145.         logComment("cancelInstall by error: " + err);
  146.     }
  147. }
  148. else
  149.     cancelInstall(INSUFFICIENT_DISK_SPACE);
  150. // end main