X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.simple%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjsch%2FSshFilesDeployment.java;h=97ba6c740d0db3479775393133aa0e6f581bc26b;hb=82da8aeebe37e93f26158678590f94341f8ea325;hp=7a3de3763b707d8f1bca22a591bd644d48ed19d4;hpb=4d39406346e271cb799a5dc6cc3dadf718b90ada;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SshFilesDeployment.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SshFilesDeployment.java index 7a3de3763..97ba6c740 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SshFilesDeployment.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SshFilesDeployment.java @@ -7,14 +7,15 @@ import java.util.Map; import org.argeo.slc.core.deploy.ResourceSet; import org.springframework.core.io.Resource; -public class SshFilesDeployment implements Runnable { +import com.jcraft.jsch.Session; + +public class SshFilesDeployment extends AbstractJschTask implements Runnable { private String targetBase = ""; private ResourceSet resourceSet; - private SshTarget sshTarget; - public void run() { + @Override + void run(Session session) { JschMultiTasks multiTasks = new JschMultiTasks(); - multiTasks.setSshTarget(sshTarget); List subDirs = new ArrayList(); Map resources = resourceSet.listResources(); @@ -26,11 +27,9 @@ public class SshFilesDeployment implements Runnable { dir = targetBase + '/' + relPath.substring(0, lastIndexSubDir); else dir = targetBase; + if (!subDirs.contains(dir)) { - RemoteExec remoteExec = new RemoteExec(); - remoteExec.setCommand("mkdir -p " + dir); subDirs.add(dir); - multiTasks.getTasks().add(remoteExec); } // Copy resource @@ -39,9 +38,18 @@ public class SshFilesDeployment implements Runnable { scpTo.setLocalResource(resource); scpTo.setRemotePath(targetBase + "/" + relPath); multiTasks.getTasks().add(scpTo); + + // TODO: set permissions + } + + RemoteExec remoteExec = new RemoteExec(); + for (String dir : subDirs) { + remoteExec.getCommands().add("mkdir -p " + dir); } + multiTasks.getTasks().add(0, remoteExec); - multiTasks.run(); + multiTasks.setSshTarget(getSshTarget()); + multiTasks.run(session); } public void setTargetBase(String targetBase) { @@ -51,9 +59,4 @@ public class SshFilesDeployment implements Runnable { public void setResourceSet(ResourceSet resourceSet) { this.resourceSet = resourceSet; } - - public void setSshTarget(SshTarget sshTarget) { - this.sshTarget = sshTarget; - } - }