wagon-scp should remove target area prior to uploading/unzipping new content ----------------------------------------------------------------------------
Key: WAGON-343 URL: https://jira.codehaus.org/browse/WAGON-343 Project: Maven Wagon Issue Type: Bug Components: wagon-ssh-external Affects Versions: 1.0 Environment: Maven 3.0.3 maven-site-plugin:3.0-beta-3 Reporter: Jamal Priority: Minor Attachments: ScpHelper.java Similiar to the request captured in this issue (https://jira.codehaus.org/browse/MSITE-250), my problem is that our target area gets out of sync when we upload our site generated content frequently using CI. When files are moved/deleted, our site deployment target area becomes a hassle to keep correct because when noticed, we have to manually delete either old files, or the entire folder (because it's easier :)) prior to deploying the site. I'd like it if the wagon-scp code could remove the files/subfolders in the target area prior to uploading. I looked at the code, and a easy fix, which I tested, is to update the ScpHelper.putDirectory() method (in wagon-ssh-common) to remove the contents of the folder prior to uploading/unzipping the new files: ... try { executor.executeCommand( "cd " + path + "; rm -rf * "); wagon.put( zipFile, getPath( destDir, zipFile.getName() ) ); executor.executeCommand( "cd " + path + "; unzip -q -o " + zipFile.getName() + "; rm -f " + zipFile.getName() ); zipFile.delete(); ... I have attached the version of the file which I updated and tested, and below is what the output looks like with my simple test project. Password for dev@localhost: XXXXXX scp://localhost/tmp/site-deploy - Session: Opened Executing command: mkdir -p /tmp/site-deploy/. Executing command: cd /tmp/site-deploy/.; rm -rf * Executing command: mkdir -p /tmp/site-deploy/. Executing command: scp -t "/tmp/site-deploy/./wagon3163598898345372687.zip" Uploading: ./wagon3163598898345372687.zip to scp://localhost/tmp/site-deploy -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira