#12 konstanty příkazů + chybová hláška u which.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Mon Aug 22 01:26:23 2011 +0200 (2011-08-22)
changeset 30cefd5fe75cb8
parent 29 7bd7aaa9874a
child 31 da6ae32853cb
#12 konstanty příkazů + chybová hláška u which.
šablona/funkce/src/cz/frantovo/xmlWebGenerator/Funkce.java
     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  	}