equal
deleted
inserted
replaced
1 package cz.frantovo.xmlWebGenerator; |
1 package cz.frantovo.xmlWebGenerator; |
2 |
2 |
3 import java.io.BufferedReader; |
|
4 import java.io.File; |
3 import java.io.File; |
5 import java.io.IOException; |
4 import java.io.IOException; |
6 import java.io.InputStream; |
|
7 import java.io.InputStreamReader; |
|
8 import java.io.PrintStream; |
5 import java.io.PrintStream; |
9 import java.util.Date; |
6 import java.util.Date; |
10 import java.net.URI; |
7 import java.net.URI; |
11 import java.net.URISyntaxException; |
8 import java.net.URISyntaxException; |
|
9 import static cz.frantovo.xmlWebGenerator.NástrojeCLI.*; |
12 |
10 |
13 /** |
11 /** |
14 * Knihovna funkcí volaných z XSLT. |
12 * Knihovna funkcí volaných z XSLT. |
15 * |
13 * |
16 * TODO: |
14 * TODO: |
22 public class Funkce { |
20 public class Funkce { |
23 |
21 |
24 private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize"; |
22 private static final String PŘÍKAZ_PYGMENTIZE = "pygmentize"; |
25 private static final String PŘÍKAZ_DOT = "dot"; |
23 private static final String PŘÍKAZ_DOT = "dot"; |
26 private static final String PŘÍKAZ_MARKDOWN = "markdown"; |
24 private static final String PŘÍKAZ_MARKDOWN = "markdown"; |
27 private static final String PŘÍKAZ_WHICH = "which"; |
|
28 private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup"; |
25 private static final String ADRESÁŘ_VÝSTUPNÍ = "výstup"; |
29 private static int počítadloDiagramů = 0; |
26 private static int počítadloDiagramů = 0; |
30 |
27 |
31 /** |
28 /** |
32 * Zjištuje, kdy byl naposledy daný soubor změněn. |
29 * Zjištuje, kdy byl naposledy daný soubor změněn. |
181 System.err.println("\t$ aptitude install markdown # (Debian/Ubuntu)"); |
178 System.err.println("\t$ aptitude install markdown # (Debian/Ubuntu)"); |
182 System.err.println("\t$ yum install perl-Text-Markdown # (Fedora/RedHat)"); |
179 System.err.println("\t$ yum install perl-Text-Markdown # (Fedora/RedHat)"); |
183 return null; |
180 return null; |
184 } |
181 } |
185 } |
182 } |
186 |
|
187 /** |
|
188 * Čte proud dat dokud to jde a výsledek pak vrátí jako text. |
|
189 * @param proud vstupní proud |
|
190 * @return obsah proudu jako text |
|
191 * @throws IOException |
|
192 */ |
|
193 private static String načtiProud(InputStream proud) throws IOException { |
|
194 StringBuilder výsledek = new StringBuilder(); |
|
195 BufferedReader buf = new BufferedReader(new InputStreamReader(proud)); |
|
196 while (true) { |
|
197 String radek = buf.readLine(); |
|
198 if (radek == null) { |
|
199 break; |
|
200 } else { |
|
201 výsledek.append(radek); |
|
202 výsledek.append("\n"); |
|
203 } |
|
204 } |
|
205 return výsledek.toString(); |
|
206 } |
|
207 |
|
208 /** |
|
209 * Pomocí programu which zjistí, jestli je daný příkaz v systému přítomný. |
|
210 * @param příkaz jehož přítomnost zjišťujeme |
|
211 * @return true pokud příkaz v systému existuje |
|
212 */ |
|
213 private static boolean isPříkazDostupný(String příkaz) { |
|
214 try { |
|
215 Runtime r = Runtime.getRuntime(); |
|
216 Process p = r.exec(new String[]{PŘÍKAZ_WHICH, příkaz}); |
|
217 p.waitFor(); |
|
218 return p.exitValue() == 0; |
|
219 } catch (Exception e) { |
|
220 System.err.printf("Při zjišťování dostupnosti příkazu „%s“ došlo k chybě: %s", příkaz, e.getLocalizedMessage()); |
|
221 return false; |
|
222 } |
|
223 } |
|
224 } |
183 } |