Various fixes

This commit is contained in:
crschnick 2024-02-25 09:00:56 +00:00
parent d9db3b1ef6
commit 1a7a3637e6
5 changed files with 16 additions and 5 deletions

View file

@ -273,15 +273,15 @@ public class FileSystemHelper {
var baseRelative = FileNames.toDirectory(FileNames.getParent(source.getPath())); var baseRelative = FileNames.toDirectory(FileNames.getParent(source.getPath()));
List<FileSystem.FileEntry> list = source.getFileSystem().listFilesRecursively(source.getPath()); List<FileSystem.FileEntry> list = source.getFileSystem().listFilesRecursively(source.getPath());
list.forEach(fileEntry -> { for (FileSystem.FileEntry fileEntry : list) {
flatFiles.put(fileEntry, FileNames.toUnix(FileNames.relativize(baseRelative, fileEntry.getPath()))); flatFiles.put(fileEntry, FileNames.toUnix(FileNames.relativize(baseRelative, fileEntry.getPath())));
if (fileEntry.getKind() == FileKind.FILE) { if (fileEntry.getKind() == FileKind.FILE) {
totalSize.addAndGet(fileEntry.getSize()); totalSize.addAndGet(fileEntry.getFileSystem().getFileSize(fileEntry.getPath()));
} }
}); }
} else { } else {
flatFiles.put(source, FileNames.getFileName(source.getPath())); flatFiles.put(source, FileNames.getFileName(source.getPath()));
totalSize.addAndGet(source.getSize()); totalSize.addAndGet(source.getFileSystem().getFileSize(source.getPath()));
} }
AtomicLong transferred = new AtomicLong(); AtomicLong transferred = new AtomicLong();
@ -303,8 +303,9 @@ public class FileSystemHelper {
InputStream inputStream = null; InputStream inputStream = null;
OutputStream outputStream = null; OutputStream outputStream = null;
try { try {
var fileSize = sourceFile.getFileSystem().getFileSize(sourceFile.getPath());
inputStream = sourceFile.getFileSystem().openInput(sourceFile.getPath()); inputStream = sourceFile.getFileSystem().openInput(sourceFile.getPath());
outputStream = target.getFileSystem().openOutput(targetFile, sourceFile.getSize()); outputStream = target.getFileSystem().openOutput(targetFile, fileSize);
transferFile(sourceFile, inputStream, outputStream, transferred, totalSize, progress); transferFile(sourceFile, inputStream, outputStream, transferred, totalSize, progress);
inputStream.transferTo(OutputStream.nullOutputStream()); inputStream.transferTo(OutputStream.nullOutputStream());
} catch (Exception ex) { } catch (Exception ex) {

View file

@ -57,6 +57,7 @@ project.ext {
arch = getArchName() arch = getArchName()
privateExtensions = file("$rootDir/private_extensions.txt").exists() ? file("$rootDir/private_extensions.txt").readLines() : [] privateExtensions = file("$rootDir/private_extensions.txt").exists() ? file("$rootDir/private_extensions.txt").readLines() : []
isFullRelease = System.getenv('RELEASE') != null && Boolean.parseBoolean(System.getenv('RELEASE')) isFullRelease = System.getenv('RELEASE') != null && Boolean.parseBoolean(System.getenv('RELEASE'))
isPreRelease = System.getenv('PRERELEASE') != null && Boolean.parseBoolean(System.getenv('PRERELEASE'))
isStage = System.getenv('STAGE') != null && Boolean.parseBoolean(System.getenv('STAGE')) isStage = System.getenv('STAGE') != null && Boolean.parseBoolean(System.getenv('STAGE'))
rawVersion = file('version').text.trim() rawVersion = file('version').text.trim()
versionString = rawVersion + (isFullRelease || isStage ? '' : '-SNAPSHOT') versionString = rawVersion + (isFullRelease || isStage ? '' : '-SNAPSHOT')

View file

@ -35,6 +35,8 @@ public interface ShellDialect {
String queryVersion(ShellControl shellControl) throws Exception; String queryVersion(ShellControl shellControl) throws Exception;
CommandControl queryFileSize(ShellControl shellControl, String file);
CommandControl prepareUserTempDirectory(ShellControl shellControl, String directory); CommandControl prepareUserTempDirectory(ShellControl shellControl, String directory);
String initFileName(ShellControl sc) throws Exception; String initFileName(ShellControl sc) throws Exception;

View file

@ -25,6 +25,11 @@ public class ConnectionFileSystem implements FileSystem {
this.store = store; this.store = store;
} }
@Override
public long getFileSize(String file) throws Exception {
return Long.parseLong(shellControl.getShellDialect().queryFileSize(shellControl, file).readStdoutOrThrow());
}
@Override @Override
public FileSystemStore getStore() { public FileSystemStore getStore() {
return store; return store;

View file

@ -17,6 +17,8 @@ import java.util.stream.Stream;
public interface FileSystem extends Closeable, AutoCloseable { public interface FileSystem extends Closeable, AutoCloseable {
long getFileSize(String file) throws Exception;
FileSystemStore getStore(); FileSystemStore getStore();
Optional<ShellControl> getShell(); Optional<ShellControl> getShell();