// Installation guide for Blackwood.xpi // 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 creates a symlink function symlink(lnk, tgt) { var err = execute("symlink.sh", tgt + " " + lnk); logComment("execute symlink.sh "+tgt+" "+lnk+" returned: "+err); } // main var srDest; var err; var fProgram; srDest = 1000; logComment("Starting Install Process"); err = initInstall("Blackwood", "Blackwood", "1.0"); logComment("initInstall: " + err); fProgram = getFolder("Program"); logComment("fProgram: " + fProgram); if(verifyDiskSpace(fProgram, srDest)) { setPackageFolder(fProgram); err = addDirectory("", "1.0", "javadev", // dir name in jar to extract fProgram, // Where to put this file // (Returned from GetFolder) "javadev", // subdir name to create relative to fProgram true); // Force Flag logComment("addDirectory() returned: " + err); var fComponents = getFolder("Components"); var fJavadev = getFolder("Program","javadev"); symlink(fComponents + "libjavadom.so", getFolder(fJavadev, "lib/libjavadom.so")); symlink(fComponents + "libpluglet.so", getFolder(fJavadev, "lib/libpluglet.so")); symlink(fComponents + "libbcorb.so", getFolder(fJavadev, "lib/libbcorb.so")); symlink(fComponents + "libbcjavastubs.so", getFolder(fJavadev, "lib/libbcjavastubs.so")); symlink(fComponents + "libjavaloader.so", getFolder(fJavadev, "lib/libjavaloader.so")); symlink(fComponents + "libjavaSample.so", getFolder(fJavadev, "lib/libjavaSample.so")); symlink(fComponents + "libbcTest.so", getFolder(fJavadev, "lib/libbcTest.so")); symlink(fComponents + "libbcxpcomstubs.so", getFolder(fJavadev, "lib/libbcxpcomstubs.so")); symlink(fProgram + "regxpcom", getFolder(fJavadev, "lib/regxpcom")); // check return value if(err == SUCCESS) { err = performInstall(); logComment("performInstall() returned: " + err); } else cancelInstall(err); } else cancelInstall(INSUFFICIENT_DISK_SPACE); // end main