#20 Skriptování: Podpora spouštění skriptů ze šablon (ne jen z dokumentů), oprava chyby (URI stránky bylo null),
ale při přiřazování výstupu skriptu do proměnné nejde použít disable-output-escaping="yes" resp. vloží se escapovaný výstup
(jiná makra lze přes proměnné procpat a používat je tak v jiných makrech).
viz http://www.stylusstudio.com/xsllist/200105/post40940.html
2 * XML Web generátor – program na generování webových stránek
3 * Copyright © 2012 František Kučera (frantovo.cz)
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package cz.frantovo.xmlWebGenerator;
20 import java.io.BufferedReader;
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.io.InputStreamReader;
26 * Pomocné funkce pro práci s příkazy
28 * Tyto funkce nejsou určené k přímému volání z XSLT.
30 * @author František Kučera (frantovo.cz)
32 public class NástrojeCLI {
34 private static final String PŘÍKAZ_WHICH = "which";
37 * Pomocí programu which zjistí, jestli je daný příkaz v systému přítomný.
38 * @param příkaz jehož přítomnost zjišťujeme
39 * @return true pokud příkaz v systému existuje
41 public static boolean isPříkazDostupný(String příkaz) {
43 Runtime r = Runtime.getRuntime();
44 Process p = r.exec(new String[]{PŘÍKAZ_WHICH, příkaz});
46 return p.exitValue() == 0;
47 } catch (Exception e) {
48 System.err.printf("Při zjišťování dostupnosti příkazu „%s“ došlo k chybě: %s", příkaz, e.getLocalizedMessage());
54 * Čte proud dat dokud to jde a výsledek pak vrátí jako text.
55 * @param proud vstupní proud
56 * @return obsah proudu jako text
59 public static String načtiProud(InputStream proud) throws IOException {
60 StringBuilder výsledek = new StringBuilder();
61 BufferedReader buf = new BufferedReader(new InputStreamReader(proud));
63 String radek = buf.readLine();
67 výsledek.append(radek);
68 výsledek.append("\n");
71 return výsledek.toString();