From bc9c6412682a43ce44d01b7d74bd8a21ca7cfa67 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Mon, 1 Sep 2014 19:54:37 +0200 Subject: [PATCH] Do not automatically att ~/Syncany to daemon.xml; create daemon-example.xml instead; relates to #210 --- .../operations/daemon/DaemonOperation.java | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/syncany-daemon/src/main/java/org/syncany/operations/daemon/DaemonOperation.java b/syncany-daemon/src/main/java/org/syncany/operations/daemon/DaemonOperation.java index 7083bd213..868e24aea 100644 --- a/syncany-daemon/src/main/java/org/syncany/operations/daemon/DaemonOperation.java +++ b/syncany-daemon/src/main/java/org/syncany/operations/daemon/DaemonOperation.java @@ -66,12 +66,16 @@ */ public class DaemonOperation extends Operation { private static final Logger logger = Logger.getLogger(DaemonOperation.class.getSimpleName()); + private static final String PID_FILE = "daemon.pid"; private static final String DAEMON_FILE = "daemon.xml"; + private static final String DAEMON_EXAMPLE_FILE = "daemon-example.xml"; private static final String DEFAULT_FOLDER = "Syncany"; + + private static final String USER_CLI = "CLI"; + private static final String USER_ADMIN = "admin"; private File pidFile; - private File daemonConfigFile; private WebServer webServer; private WatchServer watchServer; @@ -81,10 +85,8 @@ public class DaemonOperation extends Operation { private PortTO portTO; public DaemonOperation(Config config) { - super(config); - - this.pidFile = new File(UserConfig.getUserConfigDir(), PID_FILE); - this.daemonConfigFile = new File(UserConfig.getUserConfigDir(), DAEMON_FILE); + super(config); + this.pidFile = new File(UserConfig.getUserConfigDir(), PID_FILE); } @Override @@ -156,10 +158,15 @@ private void reloadOperation() { private void loadOrCreateConfig() { try { + File daemonConfigFile = new File(UserConfig.getUserConfigDir(), DAEMON_FILE); + File daemonConfigFileExample = new File(UserConfig.getUserConfigDir(), DAEMON_EXAMPLE_FILE); + if (daemonConfigFile.exists()) { daemonConfig = DaemonConfigTO.load(daemonConfigFile); } else { + // Write example config to daemon-example.xml, and default config to daemon.xml + createAndWriteExampleConfig(daemonConfigFileExample); daemonConfig = createAndWriteDefaultConfig(daemonConfigFile); } @@ -169,7 +176,7 @@ private void loadOrCreateConfig() { String accessToken = CipherUtil.createRandomAlphabeticString(20); UserTO cliUser = new UserTO(); - cliUser.setUsername("CLI"); + cliUser.setUsername(USER_CLI); cliUser.setPassword(accessToken); portTO = new PortTO(); @@ -180,8 +187,9 @@ private void loadOrCreateConfig() { daemonConfig.setPortTO(portTO); } else if (daemonConfig.getPortTO() == null) { - // Access info is not included in the daemonConfig, but exists. (Happens when reloading) - // We reload the information about the port, but keep the accesstoken the same. + // Access info is not included in the daemon config, but exists. Happens when reloading. + // We reload the information about the port, but keep the access token the same. + portTO.setPort(daemonConfig.getWebServer().getBindPort()); daemonConfig.setPortTO(portTO); } @@ -191,7 +199,11 @@ else if (daemonConfig.getPortTO() == null) { } } - private DaemonConfigTO createAndWriteDefaultConfig(File configFile) { + private DaemonConfigTO createAndWriteDefaultConfig(File daemonConfigFile) { + return createAndWriteConfig(daemonConfigFile, new ArrayList()); + } + + private DaemonConfigTO createAndWriteExampleConfig(File configFileExample) { File defaultFolder = new File(System.getProperty("user.home"), DEFAULT_FOLDER); FolderTO defaultFolderTO = new FolderTO(); @@ -200,8 +212,12 @@ private DaemonConfigTO createAndWriteDefaultConfig(File configFile) { ArrayList folders = new ArrayList(); folders.add(defaultFolderTO); + return createAndWriteConfig(configFileExample, folders); + } + + private DaemonConfigTO createAndWriteConfig(File configFile, ArrayList folders) { UserTO defaultUserTO = new UserTO(); - defaultUserTO.setUsername("admin"); + defaultUserTO.setUsername(USER_ADMIN); defaultUserTO.setPassword(CipherUtil.createRandomAlphabeticString(12)); ArrayList users = new ArrayList();