# HG changeset patch # User František Kučera # Date 1313969183 -7200 # Node ID cefd5fe75cb8b909e19fb8640fc19af8ec3651d1 # Parent 7bd7aaa9874ab7bc0f87f38273ff33518ccbf2c9 #12 konstanty příkazů + chybová hláška u which. diff -r 7bd7aaa9874a -r cefd5fe75cb8 š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; } }