protected Process sudoWithPass(ArgumentListBuilder args) throws IOException { args.prepend(sudoExe(),"-S"); listener.getLogger().println("$ "+Util.join(args.toList()," ")); ProcessBuilder pb = new ProcessBuilder(args.toCommandArray()); Process p = pb.start(); // TODO: use -p to detect prompt // TODO: detect if the password didn't work PrintStream ps = new PrintStream(p.getOutputStream()); ps.println(rootPassword); ps.println(rootPassword); ps.println(rootPassword); return p; } }.start(listener,rootPassword);
protected Process sudoWithPass(ArgumentListBuilder args) throws IOException { listener.getLogger().println("Running with embedded_su"); ProcessBuilder pb = new ProcessBuilder(args.prepend(sudoExe()).toCommandArray()); return EmbeddedSu.startWithSu(rootUsername, rootPassword, pb); } // in solaris, pfexec never asks for a password, so username==null means
public ArgumentListBuilder toFullArguments() { ArgumentListBuilder args = new ArgumentListBuilder(); args.add(new File(System.getProperty("java.home"),"bin/java")); // TODO: if we are to support a remote launch, JVM would be on a different path. args.addKeyValuePairs("-D",systemProperties); args.add("-cp").add(classpath.toString()); args.add(this.vmopts.toCommandArray()); args.add(mainClass); args.add(this.args.toCommandArray()); return args; }
VirtualChannel start(TaskListener listener, String rootPassword) throws IOException, InterruptedException { final int uid = LIBC.geteuid(); if(uid==0) // already running as root return newLocalChannel(); String javaExe = System.getProperty("java.home") + "/bin/java"; File slaveJar = Which.jarFile(Launcher.class); ArgumentListBuilder args = new ArgumentListBuilder().add(javaExe); if(slaveJar.isFile()) args.add("-jar").add(slaveJar); else // in production code this never happens, but during debugging this is convenient args.add("-cp").add(slaveJar).add(hudson.remoting.Launcher.class.getName()); if(rootPassword==null) { // try sudo, in the hope that the user has the permission to do so without password return new LocalLauncher(listener).launchChannel( args.prepend(sudoExe()).toCommandArray(), listener.getLogger(), null, Collections.<String, String>emptyMap()); } else { // try sudo with the given password. Also run in pfexec so that we can elevate the privileges Process proc = sudoWithPass(args); return Channels.forProcess(args.toStringWithQuote(), Computer.threadPoolForRemoting, proc, listener.getLogger() ); } } }
@Override public String[] buildCommandLine(FilePath script) { if (nodeExec == null) { throw new IllegalStateException("Node executable not initialised"); } ArgumentListBuilder args = new ArgumentListBuilder(nodeExec, script.getRemote()); return args.toCommandArray(); }
protected Process sudoWithPass(ArgumentListBuilder args) throws IOException { listener.getLogger().println("Running with embedded_su"); ProcessBuilder pb = new ProcessBuilder(args.prepend(sudoExe()).toCommandArray()); return EmbeddedSu.startWithSu(rootUsername, rootPassword, pb); } // in solaris, pfexec never asks for a password, so username==null means
protected Process sudoWithPass(ArgumentListBuilder args) throws IOException { listener.getLogger().println("Running with embedded_su"); ProcessBuilder pb = new ProcessBuilder(args.prepend(sudoExe()).toCommandArray()); return EmbeddedSu.startWithSu(rootUsername, rootPassword, pb); } // in solaris, pfexec never asks for a password, so username==null means
protected Process sudoWithPass(ArgumentListBuilder args) throws IOException { listener.getLogger().println("Running with embedded_su"); ProcessBuilder pb = new ProcessBuilder(args.prepend(sudoExe()).toCommandArray()); return EmbeddedSu.startWithSu(rootUsername, rootPassword, pb); } // in solaris, pfexec never asks for a password, so username==null means
protected Process sudoWithPass(ArgumentListBuilder args) throws IOException { listener.getLogger().println("Running with embedded_su"); ProcessBuilder pb = new ProcessBuilder(args.prepend(sudoExe()).toCommandArray()); return EmbeddedSu.startWithSu(rootUsername, rootPassword, pb); } // in solaris, pfexec never asks for a password, so username==null means
public List<String> lsvob(boolean onlyMounted) throws IOException, InterruptedException { viewListPattern = getListPattern(); ArgumentListBuilder cmd = new ArgumentListBuilder(); cmd.add("lsvob"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); if (launcher.run(cmd.toCommandArray(), null, baos, null)) { return parseListOutput(new InputStreamReader(new ByteArrayInputStream(baos.toByteArray())), onlyMounted); } return new ArrayList<String>(); }
/** * @deprecated Use {@link #seed} and {@link #launch} instead. */ @Deprecated public ProcStarter run(ArgumentListBuilder args) { return launch(seed(true).add(args.toCommandArray())); }
public Reader lsactivity(String activity, String commandFormat, String viewPath) throws IOException, InterruptedException { ArgumentListBuilder cmd = new ArgumentListBuilder(); cmd.add("lsactivity"); cmd.add("-fmt", commandFormat); cmd.add(activity); // changed the path from workspace to getRootViewPath to make Dynamic UCM work FilePath filePath = getRootViewPath(launcher).child(viewPath); ByteArrayOutputStream baos = new ByteArrayOutputStream(); launcher.run(cmd.toCommandArray(), null, baos, filePath); InputStreamReader reader = new InputStreamReader(new ByteArrayInputStream(baos.toByteArray())); baos.close(); return reader; }
public boolean doesViewExist(String viewTag) throws IOException, InterruptedException { ArgumentListBuilder cmd = new ArgumentListBuilder(); cmd.add("lsview"); cmd.add(viewTag); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { return launcher.run(cmd.toCommandArray(), null, baos, null); } catch (IOException e) { return false; } }
public boolean perform(Run<?, ?> build, Launcher launcher, TaskListener listener, EnvVars env, FilePath workDir, FilePath tempDir) throws InterruptedException, IOException { listener.getLogger().println("Jenkins Artifactory Plugin version: " + ActionableHelper.getArtifactoryPluginVersion()); FilePath mavenHome = getMavenHome(listener, env, launcher); if (!mavenHome.exists()) { listener.getLogger().println("Couldn't find Maven home at " + mavenHome.getRemote() + " on agent " + Utils.getAgentName(workDir) + ". This could be because this build is running inside a Docker container."); } ArgumentListBuilder cmdLine = buildMavenCmdLine(build, listener, env, launcher, mavenHome, workDir, tempDir); String[] cmds = cmdLine.toCommandArray(); return RunMaven(build, launcher, listener, env, workDir, cmds); }
public ArgumentListBuilder toFullArguments() { ArgumentListBuilder args = new ArgumentListBuilder(); args.add(new File(System.getProperty("java.home"),"bin/java")); // TODO: if we are to support a remote launch, JVM would be on a different path. args.addKeyValuePairs("-D",systemProperties); args.add("-cp").add(classpath.toString()); args.add(this.vmopts.toCommandArray()); args.add(mainClass); args.add(this.args.toCommandArray()); return args; }
public ArgumentListBuilder toFullArguments() { ArgumentListBuilder args = new ArgumentListBuilder(); args.add(new File(System.getProperty("java.home"),"bin/java")); // TODO: if we are to support a remote launch, JVM would be on a different path. args.addKeyValuePairs("-D",systemProperties); args.add("-cp").add(classpath.toString()); args.add(this.vmopts.toCommandArray()); args.add(mainClass); args.add(this.args.toCommandArray()); return args; }
public ArgumentListBuilder toFullArguments() { ArgumentListBuilder args = new ArgumentListBuilder(); args.add(new File(System.getProperty("java.home"),"bin/java")); // TODO: if we are to support a remote launch, JVM would be on a different path. args.addKeyValuePairs("-D",systemProperties); args.add("-cp").add(classpath.toString()); args.add(this.vmopts.toCommandArray()); args.add(mainClass); args.add(this.args.toCommandArray()); return args; }
public void mkstream(String parentStream, String stream) throws IOException, InterruptedException { ArgumentListBuilder cmd = new ArgumentListBuilder(); cmd.add("mkstream"); cmd.add("-in"); cmd.add(parentStream); cmd.add(stream); ByteArrayOutputStream baos = new ByteArrayOutputStream(); launcher.run(cmd.toCommandArray(), null, baos, null); baos.close(); }
public void unlock(String comment, String objectSelector) throws IOException, InterruptedException { ArgumentListBuilder cmd = new ArgumentListBuilder(); cmd.add("unlock"); cmd.add(objectSelector); launcher.run(cmd.toCommandArray(), null, null, null); }
public void startView(String viewTags) throws IOException, InterruptedException { ArgumentListBuilder cmd = new ArgumentListBuilder(); cmd.add("startview"); cmd.addTokenized(viewTags); launcher.run(cmd.toCommandArray(), null, null, null); }