#12 konstanty příkazů + chybová hláška u which.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Mon, 22 Aug 2011 01:26:23 +0200
changeset 30 cefd5fe75cb8
parent 29 7bd7aaa9874a
child 31 da6ae32853cb
#12 konstanty příkazů + chybová hláška u which.
šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java
--- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java	Mon Aug 22 01:17:12 2011 +0200
+++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java	Mon Aug 22 01:26:23 2011 +0200
@@ -19,6 +19,9 @@
  */
 public class Funkce {
 
+	private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize";
+	private static final String PŘÍKAZ_WHICH = "which";
+
 	/**
 	 * Zjištuje, kdy byl naposledy daný soubor změněn.
 	 * @param soubor cesta k souboru
@@ -39,14 +42,12 @@
 	 * TODO: použít (?) místo textu instanci com.icl.saxon.om.NodeInfo http://saxon.sourceforge.net/saxon6.5.3/extensibility.html
 	 */
 	public static String zvýrazniSyntaxi(String zdroják, String jazyk) throws IOException, InterruptedException {
-		String příkaz = "pygmentize";
-
 		if (jazyk == null || jazyk.length() == 0) {
 			System.err.println("Není vyplněn atribut „jazyk“ → není jasné, jak se má zvýrazňovat.");
 			return null;
-		} else if (isPrikazDostupny(příkaz)) {
+		} else if (isPrikazDostupny(PŘÍKAZ_PYGMENTIZE)) {
 			Runtime r = Runtime.getRuntime();
-			Process p = r.exec(new String[]{příkaz, "-f", "html", "-l", jazyk});
+			Process p = r.exec(new String[]{PŘÍKAZ_PYGMENTIZE, "-f", "html", "-l", jazyk});
 
 			PrintStream vstupProcesu = new PrintStream(p.getOutputStream());
 			vstupProcesu.print(zdroják);
@@ -65,7 +66,7 @@
 				return null;
 			}
 		} else {
-			System.err.println("Příkaz " + příkaz + " není na vašem systému dostupný → zvýrazňování syntaxe nebude fungovat.");
+			System.err.println("Příkaz " + PŘÍKAZ_PYGMENTIZE + " není na vašem systému dostupný → zvýrazňování syntaxe nebude fungovat.");
 			System.err.println("Můžete ho nainstalovat pomocí:");
 			System.err.println("\t$ aptitude install python-pygments   # (Debian/Ubuntu)");
 			System.err.println("\t$ yum install python-pygments        # (Fedora/RedHat)");
@@ -102,10 +103,11 @@
 	private static boolean isPrikazDostupny(String příkaz) {
 		try {
 			Runtime r = Runtime.getRuntime();
-			Process p = r.exec(new String[]{"which", příkaz});
+			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;
 		}
 	}