/* * NonInteractiveInstall.java * * Originally written by Slava Pestov for the jEdit installer project. This work * has been placed into the public domain. You may use this work in any way and * for any purpose you wish. * * THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND, NOT EVEN THE * IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR OF THIS SOFTWARE, ASSUMES * _NO_ RESPONSIBILITY FOR ANY CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, * OR REDISTRIBUTION OF THIS SOFTWARE. */ package installer; import java.util.Vector; /* * Performs non-interactive installation. */ public class NonInteractiveInstall { public NonInteractiveInstall(String[] args) { String installDir = args[1]; installer = new Install(); OperatingSystem os = OperatingSystem.getOperatingSystem(); OperatingSystem.OSTask[] osTasks = os.getOSTasks(installer); for(int i = 2; i < args.length; i++) { String arg = args[i]; int index = arg.indexOf('='); if(index == -1) { System.err.println("Invalid parameter: " + arg); continue; } String taskName = arg.substring(0,index); String taskDir = arg.substring(index + 1); for(int j = 0; j < osTasks.length; j++) { OperatingSystem.OSTask osTask = osTasks[j]; if(osTask.getName().equals(taskName)) { if(taskDir.equals("off")) osTask.setEnabled(false); else { osTask.setEnabled(true); osTask.setDirectory(taskDir); } break; } } } int compCount = installer.getIntegerProperty("comp.count"); Vector components = new Vector(compCount); for(int i = 0; i < compCount; i++) { String fileset = installer.getProperty("comp." + i + ".fileset"); String osDep = installer.getProperty("comp." + i + ".os"); if(osDep != null) { if(!os.getClass().getName().endsWith(osDep)) { continue; } } components.addElement(fileset); } // ConsoleProgress progress = new ConsoleProgress(); InstallThread thread = new InstallThread( installer,progress,installDir,osTasks, 0 /* XXX */,components); thread.start(); } // private members private Install installer; }