From 631a8812e9bf9d08944bc18d972cb6134337facf Mon Sep 17 00:00:00 2001 From: ulrich <ulrich@ulrich-vaio> Date: Sun, 01 Mar 2020 15:01:39 +0000 Subject: [PATCH] SuchApi hinzugefuegt --- src/java/de/uhilger/filecms/api/SuchApi.java | 82 +++++++++++++++++++++++++++++++++++++++++ web/ui2/index.html | 2 2 files changed, 83 insertions(+), 1 deletions(-) diff --git a/src/java/de/uhilger/filecms/api/SuchApi.java b/src/java/de/uhilger/filecms/api/SuchApi.java new file mode 100644 index 0000000..ab12e9f --- /dev/null +++ b/src/java/de/uhilger/filecms/api/SuchApi.java @@ -0,0 +1,82 @@ +package de.uhilger.filecms.api; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.Date; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class SuchApi extends Api { + + private static Logger logger = Logger.getLogger(SuchApi.class.getName()); + +/** + * Dateien suchen + * + * Suche von Dateien die einen gegebenen Suchbegriff irgendwo im Namen haben. + * Die Suche erfolgt ohne Beruecksichtigung von Gross- und Kleinschreibung, + * + * @param suchbegriff zu suchender Inhalt + * @param ablageort Ordner, in dem gesucht wird, einschl. Unterordner + * + * http://localhost:8080/suche/api?c=de.uhilger.suche.api.SuchApi&m=dateiSuchen&p=wbx&p=/home/ulrich/work + * + */ + public String dateiSuchen(String suchbegriff, String ablageort) { + ProcessBuilder builder = new ProcessBuilder("find", + ablageort, "-iname", "*" + suchbegriff + "*"); + return prozessAusfuehren(builder); + } + + /** + * grep -ril "javadoc" /media/extmirror/wbx-data/cms + * http://localhost:8080/suche/api?c=de.uhilger.suche.api.SuchApi&m=inhaltSuchen&p=docker&p=/home/ulrich/work + * @return + */ + public String inhaltSuchen(String suchbegriff, String ablageort) { + ProcessBuilder builder = new ProcessBuilder("grep", "-ril", + suchbegriff, ablageort); + return prozessAusfuehren(builder); + } + + /** + * http://localhost:8080/suche/api?c=de.uhilger.suche.api.SuchApi&m=list&p=/home/ulrich/work + * ls -l /pfad/zum/inhalt + * @param ort + * @return + */ + public String list(String ort) { + ProcessBuilder builder = new ProcessBuilder("ls", "-l", + ort); + return prozessAusfuehren(builder); + } + + private String prozessAusfuehren(ProcessBuilder builder) { + try { + File outFile = new File( + new File(System.getProperty("catalina.base"), "temp"), + "proc-out-" + new Date().getTime() + ".txt"); + builder.redirectOutput(outFile); + builder.redirectError(outFile); + Process p = builder.start(); + p.waitFor(); + String newLine = System.getProperty("line.separator"); + StringBuilder ergebnis = new StringBuilder(); + BufferedReader fr = new BufferedReader(new FileReader(outFile)); + String line = fr.readLine(); + while(line != null) { + ergebnis.append(line); + ergebnis.append(newLine); + line = fr.readLine(); + } + outFile.delete(); + return ergebnis.toString(); + } catch (IOException | InterruptedException ex) { + logger.log(Level.SEVERE, null, ex); + return ex.getMessage(); + } + } + +} diff --git a/web/ui2/index.html b/web/ui2/index.html index 25e2b99..6778e9b 100644 --- a/web/ui2/index.html +++ b/web/ui2/index.html @@ -52,7 +52,7 @@ Fußzeile </div> <!-- Skripte --> - <script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/2.3.0/mustache.min.js"></script> + <script src="/jslib/mustache/mustache.min.js"></script> <script src="/jslib/moment/moment-with-locales.min.js"></script> <script src="/jslib/numeral/numeral.min.js"></script> <script src="js/app-menu.js"></script> -- Gitblit v1.9.3