home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 January
/
01_02.iso
/
software
/
netscape62win
/
aod.xpi
/
install.js
Wrap
Text File
|
2001-10-22
|
8KB
|
294 lines
// 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;
}
function updateWinReg4Ren8dot3()
{
var fProgram = getFolder("Program");
var fTemp = getFolder("Temporary");
//Notes:
// can't use a double backslash before subkey - Windows already puts it in.
// subkeys have to exist before values can be put in.
var subkey; // the name of the subkey you are poking around in
var valname; // the name of the value you want to look at
var value; // the data in the value you want to look at.
var winreg = getWinRegistry() ;
if(winreg != null)
{
// Here, we get the current version.
winreg.setRootKey(winreg.HKEY_CURRENT_USER) ; // CURRENT_USER
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce" ;
winreg.createKey(subkey,"");
valname = "ren8dot3";
value = fProgram + "ren8dot3.exe " + fTemp + "ren8dot3.ini";
err = winreg.setValueString(subkey, valname, value);
}
}
function prepareRen8dot3(listLongFilePaths)
{
var fTemp = getFolder("Temporary");
var fProgram = getFolder("Program");
var fRen8dot3Ini = getWinProfile(fTemp, "ren8dot3.ini");
var bIniCreated = false;
var fLongFilePath;
var sShortFilePath;
if(fRen8dot3Ini != null)
{
for(i = 0; i < listLongFilePaths.length; i++)
{
fLongFilePath = getFolder(fProgram, listLongFilePaths[i]);
sShortFilePath = File.windowsGetShortName(fLongFilePath);
if(sShortFilePath)
{
fRen8dot3Ini.writeString("rename", sShortFilePath, fLongFilePath);
bIniCreated = true;
}
}
if(bIniCreated)
updateWinReg4Ren8dot3() ;
}
return(0);
}
function logAODShortcut()
{
var subkey;
var valname;
var szStartMenuPrograms;
var winreg;
var fTemp;
var scAODDesc;
var scFolderName;
var szStartupFolder;
var fFolderPath;
var fFolderPathStr;
var is_winnt;
var szCurrentVersion;
var restrictedAccess;
var ikwDefined;
winreg = getWinRegistry();
scAODDesc = "Free AOL & Unlimited Internet.url";
scFolderName = "Netscape 6";
if(winreg != null)
{
/* determine if the script is running under NT or not */
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
subkey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
valname = "CurrentVersion";
szCurrentVersion = winreg.getValueString(subkey, valname);
logComment("szCurrentVersion: " + szCurrentVersion);
if((szCurrentVersion == "") || (szCurrentVersion == null))
{
is_winnt = false;
}
else
{
is_winnt = true;
}
/* This will check to see if the user has restricted access or not.
* It checks to see if HKEY_LOCALMACHINE\SOFTWARE is writable. If
* it is, then access is not restricted. This is only used to
* determine which Desktop, Programs, and Start Menu folders
* are to used: common or per user
*/
restrictedAccess = false;
ikwDefined = typeof(winreg.isKeyWritable);
logComment("winreg.isKeyWritable(): " + ikwDefined);
if(ikwDefined == "function")
{
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
if(!winreg.isKeyWritable("SOFTWARE"))
restrictedAccess = true;
}
logComment("is_winnt value: " + is_winnt);
if(!is_winnt || restrictedAccess)
{
winreg.setRootKey(winreg.HKEY_CURRENT_USER);
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
valname = "Programs";
szStartMenuPrograms = winreg.getValueString(subkey, valname);
valname = "Start Menu";
}
else
{
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
valname = "Common Programs";
szStartMenuPrograms = winreg.getValueString(subkey, valname);
}
winreg.setRootKey(winreg.HKEY_CURRENT_USER);
fFolderPathStr = winreg.getValueString(subkey, valname);
if((fFolderPathStr == "") || (fFolderPathStr == null))
{
fTemp = szStartMenuPrograms + "\\" + scFolderName;
fFolderPath = getFolder("file:///", fTemp);
}
else
{
/* convert the path string to a path folder object */
fFolderPath = getFolder("file:///", fFolderPathStr);
}
logComment("Installing: " + fFolderPath + scAODDesc);
}
}
// main
var srDest;
var err;
var fAoD;
var fileAolOnDesktop;
var fileAolOnDesktopShortcut;
var rmErr;
srDest = 449;
err = initInstall("Aol On Desktop", "/America Online/Aol On Desktop", "6.20.0.2001102218");
logComment("initInstall: " + err);
fAoD = getFolder("Communicator", "AOL");
logComment("fAoD: " + fAoD);
if(verifyDiskSpace(fAoD, srDest))
{
setPackageFolder(fAoD);
err = addDirectory("",
"6.20.0.2001102218",
"aod", // dir name in jar to extract
fAoD, // Where to put this file (Returned from getFolder)
"", // subdir name to create relative to pluginsFolder
DO_NOT_UNINSTALL);
logComment("addDirectory() returned: " + err);
// check return value
if(err==SUCCESS)
{
fileAolOnDesktop = getFolder("file:///", fAoD + "AolOnDesktop.exe");
err2 = File.execute(fileAolOnDesktop, true);
logComment("File.execute() returned: " + err2);
// remove AolOnDesktop.exe after it has finished running.
rmErr = File.remove(fileAolOnDesktop);
logComment("File.remove of " + fileAolOnDesktop + " returned: " + rmErr);
// log AolOnDesktop.exe shortcut so it can be removed at uninstall.
logAODShortcut();
// we need to ignore the previous errors because we don't want the
// installation to stop.
err = performInstall();
logComment("performInstall() returned: " + err);
}
else
cancelInstall(err);
}
else
cancelInstall(INSUFFICIENT_DISK_SPACE);
// end main