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