mirror of
https://github.com/hierynomus/sshj.git
synced 2025-12-06 07:10:53 +03:00
Allow custom scp download command line (#958)
Co-authored-by: Thomas Canava <thomas.canava@soprasteria.com>
This commit is contained in:
@@ -45,9 +45,20 @@ public class SCPDownloadClient extends AbstractSCPClient {
|
|||||||
|
|
||||||
public synchronized int copy(String sourcePath, LocalDestFile targetFile, ScpCommandLine.EscapeMode escapeMode)
|
public synchronized int copy(String sourcePath, LocalDestFile targetFile, ScpCommandLine.EscapeMode escapeMode)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
|
ScpCommandLine commandLine = ScpCommandLine.with(ScpCommandLine.Arg.SOURCE)
|
||||||
|
.and(ScpCommandLine.Arg.QUIET)
|
||||||
|
.and(ScpCommandLine.Arg.PRESERVE_TIMES)
|
||||||
|
.and(ScpCommandLine.Arg.RECURSIVE, recursiveMode)
|
||||||
|
.and(ScpCommandLine.Arg.LIMIT, String.valueOf(bandwidthLimit), (bandwidthLimit > 0));
|
||||||
|
return copy(sourcePath, targetFile, escapeMode, commandLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized int copy(String sourcePath, LocalDestFile targetFile, ScpCommandLine.EscapeMode escapeMode, ScpCommandLine commandLine)
|
||||||
|
throws IOException {
|
||||||
engine.cleanSlate();
|
engine.cleanSlate();
|
||||||
try {
|
try {
|
||||||
startCopy(sourcePath, targetFile, escapeMode);
|
commandLine.withPath(sourcePath, escapeMode);
|
||||||
|
startCopy(targetFile, commandLine);
|
||||||
} finally {
|
} finally {
|
||||||
engine.exit();
|
engine.exit();
|
||||||
}
|
}
|
||||||
@@ -62,14 +73,7 @@ public class SCPDownloadClient extends AbstractSCPClient {
|
|||||||
this.recursiveMode = recursive;
|
this.recursiveMode = recursive;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startCopy(String sourcePath, LocalDestFile targetFile, ScpCommandLine.EscapeMode escapeMode)
|
private void startCopy(LocalDestFile targetFile, ScpCommandLine commandLine) throws IOException {
|
||||||
throws IOException {
|
|
||||||
ScpCommandLine commandLine = ScpCommandLine.with(ScpCommandLine.Arg.SOURCE)
|
|
||||||
.and(ScpCommandLine.Arg.QUIET)
|
|
||||||
.and(ScpCommandLine.Arg.PRESERVE_TIMES)
|
|
||||||
.and(ScpCommandLine.Arg.RECURSIVE, recursiveMode)
|
|
||||||
.and(ScpCommandLine.Arg.LIMIT, String.valueOf(bandwidthLimit), (bandwidthLimit > 0));
|
|
||||||
commandLine.withPath(sourcePath, escapeMode);
|
|
||||||
engine.execSCPWith(commandLine);
|
engine.execSCPWith(commandLine);
|
||||||
|
|
||||||
engine.signal("Start status OK");
|
engine.signal("Start status OK");
|
||||||
|
|||||||
Reference in New Issue
Block a user