From 4c835e61e8ea2d5af2acf0c85c3c1f0d06f419df Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 26 Oct 2011 17:19:55 -0400
Subject: [PATCH] Documentation.
---
src/com/gitblit/FileSettings.java | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/com/gitblit/FileSettings.java b/src/com/gitblit/FileSettings.java
index 56aac8b..6110058 100644
--- a/src/com/gitblit/FileSettings.java
+++ b/src/com/gitblit/FileSettings.java
@@ -18,7 +18,11 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.util.Map;
import java.util.Properties;
+import java.util.regex.Pattern;
+
+import com.gitblit.utils.FileUtils;
/**
* Dynamically loads and reloads a properties file by keeping track of the last
@@ -75,6 +79,24 @@
}
/**
+ * Updates the specified settings in the settings file.
+ */
+ public synchronized boolean saveSettings(Map<String, String> settings) {
+ String content = FileUtils.readContent(propertiesFile, "\n");
+ for (Map.Entry<String, String> setting:settings.entrySet()) {
+ String regex = "(?m)^(" + regExEscape(setting.getKey()) + "\\s*+=\\s*+)"
+ + "(?:[^\r\n\\\\]++|\\\\(?:\r?\n|\r|.))*+$";
+ content = content.replaceAll(regex, setting.getKey() + " = " + setting.getValue());
+ }
+ FileUtils.writeContent(propertiesFile, content);
+ return true;
+ }
+
+ private String regExEscape(String input) {
+ return input.replace(".", "\\.");
+ }
+
+ /**
* @return the last modification date of the properties file
*/
protected long lastModified() {
--
Gitblit v1.9.1