/** Performs an installation. */ private int install(ToolInstallation t, BuildIDs id, AbstractProject p) throws IOException, InterruptedException { Run b = p.getBuildByNumber(Integer.parseInt(id.number)); if (b == null) throw new AbortException("No such build: " + id.number); Executor exec = b.getExecutor(); if (exec == null) throw new AbortException(b.getFullDisplayName() + " is not building"); Node node = exec.getOwner().getNode(); if (node == null) { throw new AbortException( "The node " + exec.getOwner().getDisplayName() + " has been deleted"); } t = t.translate(node, EnvVars.getRemote(checkChannel()), new StreamTaskListener(stderr)); stdout.println(t.getHome()); return 0; }
protected int run() throws Exception { Jenkins h = Jenkins.getInstance(); h.checkPermission(Jenkins.READ); // where is this build running? BuildIDs id = checkChannel().call(new BuildIDs()); if (!id.isComplete()) throw new AbortException( "This command can be only invoked from a build executing inside Hudson"); AbstractProject p = Jenkins.getInstance().getItemByFullName(id.job, AbstractProject.class); if (p == null) throw new AbortException("No such job found: " + id.job); p.checkPermission(Item.CONFIGURE); List<String> toolTypes = new ArrayList<String>(); for (ToolDescriptor<?> d : ToolInstallation.all()) { toolTypes.add(d.getDisplayName()); if (d.getDisplayName().equals(toolType)) { List<String> toolNames = new ArrayList<String>(); for (ToolInstallation t : d.getInstallations()) { toolNames.add(t.getName()); if (t.getName().equals(toolName)) return install(t, id, p); } // didn't find the right tool name error(toolNames, toolName, "name"); } } // didn't find the tool type error(toolTypes, toolType, "type"); // will never be here throw new AssertionError(); }
/** Obtains the {@link hudson.tasks.Maven.MavenInstallation.DescriptorImpl} instance. */ public Maven.MavenInstallation.DescriptorImpl getToolDescriptor() { return ToolInstallation.all().get(Maven.MavenInstallation.DescriptorImpl.class); }
public SbtInstallation.DescriptorImpl getToolDescriptor() { return ToolInstallation.all().get(SbtInstallation.DescriptorImpl.class); }
/** * Get the installations. * * @return The installations */ public static PythonInstallation[] list() { return ToolInstallation.all().get(DescriptorImpl.class).getInstallations(); }