šablona/funkce/src/cz/frantovo/xmlWebGenerator/NástrojeCLI.java
changeset 38 43505795334d
child 61 9503eb8377f1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/NástrojeCLI.java	Tue Sep 13 18:17:28 2011 +0200
@@ -0,0 +1,53 @@
+package cz.frantovo.xmlWebGenerator;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+/**
+ * Pomocné funkce pro práci s příkazy
+ * @author fiki
+ */
+public class NástrojeCLI {
+	
+	private static final String PŘÍKAZ_WHICH = "which";
+
+	/**
+	 * Pomocí programu which zjistí, jestli je daný příkaz v systému přítomný.
+	 * @param příkaz jehož přítomnost zjišťujeme
+	 * @return true pokud příkaz v systému existuje
+	 */
+	public static boolean isPříkazDostupný(String příkaz) {
+		try {
+			Runtime r = Runtime.getRuntime();
+			Process p = r.exec(new String[]{PŘÍKAZ_WHICH, příkaz});
+			p.waitFor();
+			return p.exitValue() == 0;
+		} catch (Exception e) {
+			System.err.printf("Při zjišťování dostupnosti příkazu „%s“ došlo k chybě: %s", příkaz, e.getLocalizedMessage());
+			return false;
+		}
+	}
+	
+	/**
+	 * Čte proud dat dokud to jde a výsledek pak vrátí jako text.
+	 * @param proud vstupní proud
+	 * @return obsah proudu jako text
+	 * @throws IOException 
+	 */
+	public static String načtiProud(InputStream proud) throws IOException {
+		StringBuilder výsledek = new StringBuilder();
+		BufferedReader buf = new BufferedReader(new InputStreamReader(proud));
+		while (true) {
+			String radek = buf.readLine();
+			if (radek == null) {
+				break;
+			} else {
+				výsledek.append(radek);
+				výsledek.append("\n");
+			}
+		}
+		return výsledek.toString();
+	}
+}