forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			127 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
// this function verifies disk space in kilobytes
 | 
						|
function verifyDiskSpace(dirPath, spaceRequired)
 | 
						|
{
 | 
						|
  var spaceAvailable;
 | 
						|
 | 
						|
  // Get the available disk space on the given path
 | 
						|
  spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
 | 
						|
 | 
						|
  // Convert the available disk space into kilobytes
 | 
						|
  spaceAvailable = parseInt(spaceAvailable / 1024);
 | 
						|
 | 
						|
  // do the verification
 | 
						|
  if(spaceAvailable < spaceRequired)
 | 
						|
  {
 | 
						|
    logComment("Insufficient disk space: " + dirPath);
 | 
						|
    logComment("  required : " + spaceRequired + " K");
 | 
						|
    logComment("  available: " + spaceAvailable + " K");
 | 
						|
    return(false);
 | 
						|
  }
 | 
						|
 | 
						|
  return(true);
 | 
						|
}
 | 
						|
 | 
						|
// this function deletes a file if it exists
 | 
						|
function deleteThisFile(dirKey, file)
 | 
						|
{
 | 
						|
  var fFileToDelete;
 | 
						|
 | 
						|
  fFileToDelete = getFolder(dirKey, file);
 | 
						|
  logComment("File to delete: " + fFileToDelete);
 | 
						|
  if(File.isFile(fFileToDelete))
 | 
						|
  {
 | 
						|
    File.remove(fFileToDelete);
 | 
						|
    return(true);
 | 
						|
  }
 | 
						|
  else
 | 
						|
    return(false);
 | 
						|
}
 | 
						|
 | 
						|
// this function deletes a folder if it exists
 | 
						|
function deleteThisFolder(dirKey, folder, recursiveDelete)
 | 
						|
{
 | 
						|
  var fToDelete;
 | 
						|
 | 
						|
  if(typeof recursiveDelete == "undefined")
 | 
						|
    recursiveDelete = true;
 | 
						|
 | 
						|
  fToDelete = getFolder(dirKey, folder);
 | 
						|
  logComment("Folder to delete: " + fToDelete);
 | 
						|
  if(File.isDirectory(fToDelete))
 | 
						|
  {
 | 
						|
    File.dirRemove(fToDelete, recursiveDelete);
 | 
						|
    return(true);
 | 
						|
  }
 | 
						|
  else
 | 
						|
    return(false);
 | 
						|
}
 | 
						|
 | 
						|
// OS type detection
 | 
						|
// which platform?
 | 
						|
function getPlatform()
 | 
						|
{
 | 
						|
  var platformStr;
 | 
						|
  var platformNode;
 | 
						|
 | 
						|
  if('platform' in Install)
 | 
						|
  {
 | 
						|
    platformStr = new String(Install.platform);
 | 
						|
 | 
						|
    if (!platformStr.search(/^Macintosh/))
 | 
						|
      platformNode = 'mac';
 | 
						|
    else if (!platformStr.search(/^Win/))
 | 
						|
      platformNode = 'win';
 | 
						|
    else
 | 
						|
      platformNode = 'unix';
 | 
						|
  }
 | 
						|
  else
 | 
						|
  {
 | 
						|
    var fOSMac  = getFolder("Mac System");
 | 
						|
    var fOSWin  = getFolder("Win System");
 | 
						|
 | 
						|
    logComment("fOSMac: "  + fOSMac);
 | 
						|
    logComment("fOSWin: "  + fOSWin);
 | 
						|
 | 
						|
    if(fOSMac != null)
 | 
						|
      platformNode = 'mac';
 | 
						|
    else if(fOSWin != null)
 | 
						|
      platformNode = 'win';
 | 
						|
    else
 | 
						|
      platformNode = 'unix';
 | 
						|
  }
 | 
						|
 | 
						|
  return platformNode;
 | 
						|
}
 | 
						|
 | 
						|
var srDest = $SpaceRequired$;
 | 
						|
 | 
						|
var err = initInstall("Quality Feedback Agent", "Quality Feedback Agent", "$Version$"); 
 | 
						|
logComment("initInstall: " + err);
 | 
						|
 | 
						|
var communicatorFolder = getFolder("Program");
 | 
						|
logComment("communicatorFolder: " + communicatorFolder);
 | 
						|
 | 
						|
if (verifyDiskSpace(communicatorFolder, srDest))
 | 
						|
{
 | 
						|
    err = addDirectory("Program",
 | 
						|
                       "$Version$",
 | 
						|
                       "bin",              // jar source folder 
 | 
						|
                       communicatorFolder, // target folder 
 | 
						|
                       "",                 // target subdir 
 | 
						|
                       true );             // force flag 
 | 
						|
 | 
						|
    logComment("addDirectory() returned: " + err);
 | 
						|
 | 
						|
    if (err==SUCCESS)
 | 
						|
    {
 | 
						|
	    err = performInstall(); 
 | 
						|
	    logComment("performInstall() returned: " + err);
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
	    cancelInstall(err);
 | 
						|
	    logComment("cancelInstall() returned: " + err);
 | 
						|
    }
 | 
						|
}
 | 
						|
else
 | 
						|
    cancelInstall(INSUFFICIENT_DISK_SPACE);
 |