šablona/funkce/src/cz/frantovo/xmlWebGenerator/NástrojeCLI.java
changeset 38 43505795334d
child 61 9503eb8377f1
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/NástrojeCLI.java	Tue Sep 13 18:17:28 2011 +0200
     1.3 @@ -0,0 +1,53 @@
     1.4 +package cz.frantovo.xmlWebGenerator;
     1.5 +
     1.6 +import java.io.BufferedReader;
     1.7 +import java.io.IOException;
     1.8 +import java.io.InputStream;
     1.9 +import java.io.InputStreamReader;
    1.10 +
    1.11 +/**
    1.12 + * Pomocné funkce pro práci s příkazy
    1.13 + * @author fiki
    1.14 + */
    1.15 +public class NástrojeCLI {
    1.16 +	
    1.17 +	private static final String PŘÍKAZ_WHICH = "which";
    1.18 +
    1.19 +	/**
    1.20 +	 * Pomocí programu which zjistí, jestli je daný příkaz v systému přítomný.
    1.21 +	 * @param příkaz jehož přítomnost zjišťujeme
    1.22 +	 * @return true pokud příkaz v systému existuje
    1.23 +	 */
    1.24 +	public static boolean isPříkazDostupný(String příkaz) {
    1.25 +		try {
    1.26 +			Runtime r = Runtime.getRuntime();
    1.27 +			Process p = r.exec(new String[]{PŘÍKAZ_WHICH, příkaz});
    1.28 +			p.waitFor();
    1.29 +			return p.exitValue() == 0;
    1.30 +		} catch (Exception e) {
    1.31 +			System.err.printf("Při zjišťování dostupnosti příkazu „%s“ došlo k chybě: %s", příkaz, e.getLocalizedMessage());
    1.32 +			return false;
    1.33 +		}
    1.34 +	}
    1.35 +	
    1.36 +	/**
    1.37 +	 * Čte proud dat dokud to jde a výsledek pak vrátí jako text.
    1.38 +	 * @param proud vstupní proud
    1.39 +	 * @return obsah proudu jako text
    1.40 +	 * @throws IOException 
    1.41 +	 */
    1.42 +	public static String načtiProud(InputStream proud) throws IOException {
    1.43 +		StringBuilder výsledek = new StringBuilder();
    1.44 +		BufferedReader buf = new BufferedReader(new InputStreamReader(proud));
    1.45 +		while (true) {
    1.46 +			String radek = buf.readLine();
    1.47 +			if (radek == null) {
    1.48 +				break;
    1.49 +			} else {
    1.50 +				výsledek.append(radek);
    1.51 +				výsledek.append("\n");
    1.52 +			}
    1.53 +		}
    1.54 +		return výsledek.toString();
    1.55 +	}
    1.56 +}