#12 konstanty příkazů + chybová hláška u which.
1.1 --- a/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Mon Aug 22 01:17:12 2011 +0200
1.2 +++ b/šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java Mon Aug 22 01:26:23 2011 +0200
1.3 @@ -19,6 +19,9 @@
1.4 */
1.5 public class Funkce {
1.6
1.7 + private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize";
1.8 + private static final String PŘÍKAZ_WHICH = "which";
1.9 +
1.10 /**
1.11 * Zjištuje, kdy byl naposledy daný soubor změněn.
1.12 * @param soubor cesta k souboru
1.13 @@ -39,14 +42,12 @@
1.14 * TODO: použít (?) místo textu instanci com.icl.saxon.om.NodeInfo http://saxon.sourceforge.net/saxon6.5.3/extensibility.html
1.15 */
1.16 public static String zvýrazniSyntaxi(String zdroják, String jazyk) throws IOException, InterruptedException {
1.17 - String příkaz = "pygmentize";
1.18 -
1.19 if (jazyk == null || jazyk.length() == 0) {
1.20 System.err.println("Není vyplněn atribut „jazyk“ → není jasné, jak se má zvýrazňovat.");
1.21 return null;
1.22 - } else if (isPrikazDostupny(příkaz)) {
1.23 + } else if (isPrikazDostupny(PŘÍKAZ_PYGMENTIZE)) {
1.24 Runtime r = Runtime.getRuntime();
1.25 - Process p = r.exec(new String[]{příkaz, "-f", "html", "-l", jazyk});
1.26 + Process p = r.exec(new String[]{PŘÍKAZ_PYGMENTIZE, "-f", "html", "-l", jazyk});
1.27
1.28 PrintStream vstupProcesu = new PrintStream(p.getOutputStream());
1.29 vstupProcesu.print(zdroják);
1.30 @@ -65,7 +66,7 @@
1.31 return null;
1.32 }
1.33 } else {
1.34 - System.err.println("Příkaz " + příkaz + " není na vašem systému dostupný → zvýrazňování syntaxe nebude fungovat.");
1.35 + System.err.println("Příkaz " + PŘÍKAZ_PYGMENTIZE + " není na vašem systému dostupný → zvýrazňování syntaxe nebude fungovat.");
1.36 System.err.println("Můžete ho nainstalovat pomocí:");
1.37 System.err.println("\t$ aptitude install python-pygments # (Debian/Ubuntu)");
1.38 System.err.println("\t$ yum install python-pygments # (Fedora/RedHat)");
1.39 @@ -102,10 +103,11 @@
1.40 private static boolean isPrikazDostupny(String příkaz) {
1.41 try {
1.42 Runtime r = Runtime.getRuntime();
1.43 - Process p = r.exec(new String[]{"which", příkaz});
1.44 + Process p = r.exec(new String[]{PŘÍKAZ_WHICH, příkaz});
1.45 p.waitFor();
1.46 return p.exitValue() == 0;
1.47 } catch (Exception e) {
1.48 + System.err.printf("Při zjišťování dostupnosti příkazu „%s“ došlo k chybě: %s", příkaz, e.getLocalizedMessage());
1.49 return false;
1.50 }
1.51 }