瀏覽代碼

add -p option

Shinsuke Sugaya 9 年之前
父節點
當前提交
bdf62f2970
共有 1 個文件被更改,包括 22 次插入0 次删除
  1. 22 0
      src/main/java/org/codelibs/fess/exec/SuggestCreator.java

+ 22 - 0
src/main/java/org/codelibs/fess/exec/SuggestCreator.java

@@ -15,6 +15,8 @@
  */
 package org.codelibs.fess.exec;
 
+import java.io.File;
+import java.io.IOException;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.util.concurrent.CountDownLatch;
@@ -52,6 +54,9 @@ public class SuggestCreator implements Serializable {
         @Option(name = "-n", aliases = "--name", metaVar = "name", usage = "Name")
         protected String name;
 
+        @Option(name = "-p", aliases = "--properties", metaVar = "properties", usage = "Properties File")
+        protected String propertiesPath;
+
         protected Options() {
             // noghing
         }
@@ -108,6 +113,23 @@ public class SuggestCreator implements Serializable {
     }
 
     private static int process(final Options options) {
+        final DynamicProperties crawlerProperties = ComponentUtil.getCrawlerProperties();
+
+        if (StringUtil.isNotBlank(options.propertiesPath)) {
+            crawlerProperties.reload(options.propertiesPath);
+        } else {
+            try {
+                final File propFile = File.createTempFile("crawler_", ".properties");
+                if (propFile.delete() && logger.isDebugEnabled()) {
+                    logger.debug("Deleted a temp file: " + propFile.getAbsolutePath());
+                }
+                crawlerProperties.reload(propFile.getAbsolutePath());
+                propFile.deleteOnExit(); // NOSONAR
+            } catch (final IOException e) {
+                logger.warn("Failed to create crawler properties file.", e);
+            }
+        }
+
         final SuggestCreator creator = SingletonLaContainer.getComponent(SuggestCreator.class);
         final LocalDateTime startTime = LocalDateTime.now();
         int ret = creator.create();