public static String runCommand(String... cmd) {
		try {
			ProcessBuilder pb = CommandBuffer.of(cmd).asProcessBuilder();
			pb.redirectErrorStream(true);
			Process p = pb.start();
			BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
			String cmdOutput = br.lines().collect(Collectors.joining("\n"));
			int exitCode = p.waitFor();
			if (exitCode == 0) {
				return cmdOutput;
			} else {
				verboseMsg(String.format("Command failed: #%d - %s", exitCode, cmdOutput));
			}
		} catch (IOException | InterruptedException ex) {
			verboseMsg("Error running: " + String.join(" ", cmd), ex);
		}
		return null;
	}
Runs the given command + arguments and returns its output (both stdout and
stderr) as a string

@param cmd The command to execute
@return The output of the command or null if anything went wrong
src/main/java/dev/jbang/util/Util.java