diff --git a/src/main/java/io/bitsquare/app/BitsquareEnvironment.java b/src/main/java/io/bitsquare/app/BitsquareEnvironment.java index b00f26f955..dff4796ea3 100644 --- a/src/main/java/io/bitsquare/app/BitsquareEnvironment.java +++ b/src/main/java/io/bitsquare/app/BitsquareEnvironment.java @@ -25,6 +25,8 @@ import io.bitsquare.persistence.Persistence; import io.bitsquare.util.Utilities; import io.bitsquare.util.spring.JOptCommandLinePropertySource; +import java.io.File; + import java.nio.file.Paths; import java.util.Properties; @@ -38,6 +40,7 @@ import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.core.io.support.ResourcePropertySource; +import org.springframework.util.FileSystemUtils; import static com.google.common.base.Preconditions.checkNotNull; @@ -45,6 +48,7 @@ public class BitsquareEnvironment extends StandardEnvironment { public static final String APP_VERSION_KEY = "app.version"; + public static final String USER_DATA_CLEAN_DIR_KEY = "user.data.clean.dir"; public static final String USER_DATA_DIR_KEY = "user.data.dir"; public static final String DEFAULT_USER_DATA_DIR = defaultUserDataDir(); @@ -90,6 +94,12 @@ public class BitsquareEnvironment extends StandardEnvironment { } catch (Exception ex) { throw new BitsquareException(ex); } + + boolean cleanUserDataDir = commandLineProperties.containsProperty(USER_DATA_CLEAN_DIR_KEY) && + commandLineProperties.getProperty(USER_DATA_CLEAN_DIR_KEY).equals("true"); + if (cleanUserDataDir) { + FileSystemUtils.deleteRecursively(new File(appDataDir)); + } } diff --git a/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java b/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java index 45a7d55566..37b2502815 100644 --- a/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java +++ b/src/main/java/io/bitsquare/app/gui/BitsquareAppMain.java @@ -41,6 +41,9 @@ public class BitsquareAppMain extends BitsquareExecutable { protected void customizeOptionParsing(OptionParser parser) { parser.accepts(USER_DATA_DIR_KEY, description("User data directory", DEFAULT_USER_DATA_DIR)) .withRequiredArg(); + parser.accepts(USER_DATA_CLEAN_DIR_KEY, description("Clean user data directory", false)) + .withRequiredArg() + .ofType(boolean.class); parser.accepts(APP_NAME_KEY, description("Application name", DEFAULT_APP_NAME)) .withRequiredArg(); parser.accepts(APP_DATA_DIR_KEY, description("Application data directory", DEFAULT_APP_DATA_DIR))