James Moger
2012-01-05 cb285cbfddfc0b633d6b8cdb4dc0d2bd2b8b51ef
src/com/gitblit/FileSettings.java
@@ -18,7 +18,10 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Map;
import java.util.Properties;
import com.gitblit.utils.FileUtils;
/**
 * Dynamically loads and reloads a properties file by keeping track of the last
@@ -75,6 +78,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() {