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