šablona/funkce/src/cz/frantovo/xmlWebGenerator/NástrojeCLI.java
author František Kučera <franta-hg@frantovo.cz>
Sat Jan 07 01:57:27 2012 +0100 (2012-01-07)
changeset 57 768a7eecb0cf
child 61 9503eb8377f1
permissions -rw-r--r--
odkaz #16 na RFCčko musí být číselný
franta-hg@38
     1
package cz.frantovo.xmlWebGenerator;
franta-hg@38
     2
franta-hg@38
     3
import java.io.BufferedReader;
franta-hg@38
     4
import java.io.IOException;
franta-hg@38
     5
import java.io.InputStream;
franta-hg@38
     6
import java.io.InputStreamReader;
franta-hg@38
     7
franta-hg@38
     8
/**
franta-hg@38
     9
 * Pomocné funkce pro práci s příkazy
franta-hg@38
    10
 * @author fiki
franta-hg@38
    11
 */
franta-hg@38
    12
public class NástrojeCLI {
franta-hg@38
    13
	
franta-hg@38
    14
	private static final String PŘÍKAZ_WHICH = "which";
franta-hg@38
    15
franta-hg@38
    16
	/**
franta-hg@38
    17
	 * Pomocí programu which zjistí, jestli je daný příkaz v systému přítomný.
franta-hg@38
    18
	 * @param příkaz jehož přítomnost zjišťujeme
franta-hg@38
    19
	 * @return true pokud příkaz v systému existuje
franta-hg@38
    20
	 */
franta-hg@38
    21
	public static boolean isPříkazDostupný(String příkaz) {
franta-hg@38
    22
		try {
franta-hg@38
    23
			Runtime r = Runtime.getRuntime();
franta-hg@38
    24
			Process p = r.exec(new String[]{PŘÍKAZ_WHICH, příkaz});
franta-hg@38
    25
			p.waitFor();
franta-hg@38
    26
			return p.exitValue() == 0;
franta-hg@38
    27
		} catch (Exception e) {
franta-hg@38
    28
			System.err.printf("Při zjišťování dostupnosti příkazu „%s“ došlo k chybě: %s", příkaz, e.getLocalizedMessage());
franta-hg@38
    29
			return false;
franta-hg@38
    30
		}
franta-hg@38
    31
	}
franta-hg@38
    32
	
franta-hg@38
    33
	/**
franta-hg@38
    34
	 * Čte proud dat dokud to jde a výsledek pak vrátí jako text.
franta-hg@38
    35
	 * @param proud vstupní proud
franta-hg@38
    36
	 * @return obsah proudu jako text
franta-hg@38
    37
	 * @throws IOException 
franta-hg@38
    38
	 */
franta-hg@38
    39
	public static String načtiProud(InputStream proud) throws IOException {
franta-hg@38
    40
		StringBuilder výsledek = new StringBuilder();
franta-hg@38
    41
		BufferedReader buf = new BufferedReader(new InputStreamReader(proud));
franta-hg@38
    42
		while (true) {
franta-hg@38
    43
			String radek = buf.readLine();
franta-hg@38
    44
			if (radek == null) {
franta-hg@38
    45
				break;
franta-hg@38
    46
			} else {
franta-hg@38
    47
				výsledek.append(radek);
franta-hg@38
    48
				výsledek.append("\n");
franta-hg@38
    49
			}
franta-hg@38
    50
		}
franta-hg@38
    51
		return výsledek.toString();
franta-hg@38
    52
	}
franta-hg@38
    53
}