]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Add clean option to VersionedDirSync
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 10 Feb 2012 18:48:19 +0000 (18:48 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 10 Feb 2012 18:48:19 +0000 (18:48 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@5045 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/VersionedDirSync.java

index 212eb367c24c5b8c2a69790fdc95eca3cab0da06..7199b0ef3fa3dbc29ab226cce4441602b967da0d 100644 (file)
 package org.argeo.slc.core.deploy;
 
 import java.io.File;
+import java.io.IOException;
 
+import org.apache.commons.io.FileUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.argeo.slc.SlcException;
 import org.argeo.slc.deploy.VersioningDriver;
 
 /**
@@ -32,8 +35,18 @@ public class VersionedDirSync implements Runnable {
        private VersioningDriver versioningDriver;
        private File dir;
        private String url;
+       private Boolean clean = false;
 
        public void run() {
+               if (clean) {
+                       try {
+                               FileUtils.deleteDirectory(dir);
+                       } catch (IOException e) {
+                               throw new SlcException("Cannot delete checkout directory "
+                                               + dir, e);
+                       }
+                       dir.mkdirs();
+               }
                versioningDriver.checkout(url, dir, true);
                if (log.isDebugEnabled())
                        log.debug("Synchronized " + url + " to " + dir);
@@ -51,4 +64,9 @@ public class VersionedDirSync implements Runnable {
                this.url = url;
        }
 
+       /** Delete before checkout */
+       public void setClean(Boolean clean) {
+               this.clean = clean;
+       }
+
 }