home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 April / com_0405_1.iso / opensource / Thunderbird Setup 1.0.exe / talkback.xpi / install.js
Encoding:
JavaScript  |  2004-12-06  |  5.0 KB  |  225 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. // this function verifies disk space in kilobytes
  99. function verifyDiskSpace(dirPath, spaceRequired)
  100. {
  101.   var spaceAvailable;
  102.  
  103.   // Get the available disk space on the given path
  104.   spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  105.  
  106.   // Convert the available disk space into kilobytes
  107.   spaceAvailable = parseInt(spaceAvailable / 1024);
  108.  
  109.   // do the verification
  110.   if(spaceAvailable < spaceRequired)
  111.   {
  112.     logComment("Insufficient disk space: " + dirPath);
  113.     logComment("  required : " + spaceRequired + " K");
  114.     logComment("  available: " + spaceAvailable + " K");
  115.     return(false);
  116.   }
  117.  
  118.   return(true);
  119. }
  120.  
  121. // this function deletes a file if it exists
  122. function deleteThisFile(dirKey, file)
  123. {
  124.   var fFileToDelete;
  125.  
  126.   fFileToDelete = getFolder(dirKey, file);
  127.   logComment("File to delete: " + fFileToDelete);
  128.   if(File.isFile(fFileToDelete))
  129.   {
  130.     File.remove(fFileToDelete);
  131.     return(true);
  132.   }
  133.   else
  134.     return(false);
  135. }
  136.  
  137. // this function deletes a folder if it exists
  138. function deleteThisFolder(dirKey, folder, recursiveDelete)
  139. {
  140.   var fToDelete;
  141.  
  142.   if(typeof recursiveDelete == "undefined")
  143.     recursiveDelete = true;
  144.  
  145.   fToDelete = getFolder(dirKey, folder);
  146.   logComment("Folder to delete: " + fToDelete);
  147.   if(File.isDirectory(fToDelete))
  148.   {
  149.     File.dirRemove(fToDelete, recursiveDelete);
  150.     return(true);
  151.   }
  152.   else
  153.     return(false);
  154. }
  155.  
  156. // OS type detection
  157. // which platform?
  158. function getPlatform()
  159. {
  160.   var platformStr;
  161.   var platformNode;
  162.  
  163.   if('platform' in Install)
  164.   {
  165.     platformStr = new String(Install.platform);
  166.  
  167.     if (!platformStr.search(/^Macintosh/))
  168.       platformNode = 'mac';
  169.     else if (!platformStr.search(/^Win/))
  170.       platformNode = 'win';
  171.     else
  172.       platformNode = 'unix';
  173.   }
  174.   else
  175.   {
  176.     var fOSMac  = getFolder("Mac System");
  177.     var fOSWin  = getFolder("Win System");
  178.  
  179.     logComment("fOSMac: "  + fOSMac);
  180.     logComment("fOSWin: "  + fOSWin);
  181.  
  182.     if(fOSMac != null)
  183.       platformNode = 'mac';
  184.     else if(fOSWin != null)
  185.       platformNode = 'win';
  186.     else
  187.       platformNode = 'unix';
  188.   }
  189.  
  190.   return platformNode;
  191. }
  192.  
  193. var srDest = 601;
  194.  
  195. var err = initInstall("Quality Feedback Agent", "Quality Feedback Agent", "1.0"); 
  196. logComment("initInstall: " + err);
  197.  
  198. var communicatorFolder = getFolder("Program");
  199. logComment("communicatorFolder: " + communicatorFolder);
  200.  
  201. if (verifyDiskSpace(communicatorFolder, srDest))
  202. {
  203.     err = addDirectory("",
  204.                        "1.0",
  205.                        "bin",              // jar source folder 
  206.                        communicatorFolder, // target folder 
  207.                        "",                 // target subdir 
  208.                        true );             // force flag 
  209.  
  210.     logComment("addDirectory() returned: " + err);
  211.  
  212.     if (err==SUCCESS)
  213.     {
  214.         err = performInstall(); 
  215.         logComment("performInstall() returned: " + err);
  216.     }
  217.     else
  218.     {
  219.         cancelInstall(err);
  220.         logComment("cancelInstall() returned: " + err);
  221.     }
  222. }
  223. else
  224.     cancelInstall(INSUFFICIENT_DISK_SPACE);
  225.