diff options
Diffstat (limited to 'tools/integrate/Command.java')
-rw-r--r-- | tools/integrate/Command.java | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/tools/integrate/Command.java b/tools/integrate/Command.java deleted file mode 100644 index 5e7796f..0000000 --- a/tools/integrate/Command.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; - -/** - * An out of process executable. - */ -class Command { - - private final List<String> args; - private final boolean permitNonZeroExitStatus; - - Command(String... args) { - this(Arrays.asList(args)); - } - - Command(List<String> args) { - this.args = new ArrayList<String>(args); - this.permitNonZeroExitStatus = false; - } - - private Command(Builder builder) { - this.args = new ArrayList<String>(builder.args); - this.permitNonZeroExitStatus = builder.permitNonZeroExitStatus; - } - - static class Builder { - private final List<String> args = new ArrayList<String>(); - private boolean permitNonZeroExitStatus = false; - - public Builder args(String... args) { - return args(Arrays.asList(args)); - } - - public Builder args(Collection<String> args) { - this.args.addAll(args); - return this; - } - - public Builder permitNonZeroExitStatus() { - permitNonZeroExitStatus = true; - return this; - } - - public Command build() { - return new Command(this); - } - - public List<String> execute() { - return build().execute(); - } - } - - public List<String> execute() { - try { - Process process = new ProcessBuilder() - .command(args) - .redirectErrorStream(true) - .start(); - - BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); - List<String> outputLines = new ArrayList<String>(); - String outputLine; - while ((outputLine = in.readLine()) != null) { - outputLines.add(outputLine); - } - - if (process.waitFor() != 0 && !permitNonZeroExitStatus) { - StringBuilder message = new StringBuilder(); - for (String line : outputLines) { - message.append("\n").append(line); - } - throw new RuntimeException("Process failed: " + args + message); - } - - return outputLines; - } catch (IOException e) { - throw new RuntimeException("Process failed: " + args, e); - } catch (InterruptedException e) { - throw new RuntimeException("Process failed: " + args, e); - } - } - -} |