mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 00:15:44 +01:00
Delete old repository data directories for inline
This commit is contained in:
@@ -7,6 +7,7 @@ import sonia.scm.repository.RepositoryDirectoryHandler;
|
|||||||
import sonia.scm.repository.RepositoryLocationResolver;
|
import sonia.scm.repository.RepositoryLocationResolver;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
|
||||||
@@ -34,6 +35,10 @@ class InlineMigrationStrategy extends BaseMigrationStrategy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void moveData(Path sourceDirectory, Path targetDirectory) {
|
private void moveData(Path sourceDirectory, Path targetDirectory) {
|
||||||
|
moveData(sourceDirectory, targetDirectory, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void moveData(Path sourceDirectory, Path targetDirectory, boolean deleteDirectory) {
|
||||||
createDataDirectory(targetDirectory);
|
createDataDirectory(targetDirectory);
|
||||||
listSourceDirectory(sourceDirectory)
|
listSourceDirectory(sourceDirectory)
|
||||||
.filter(sourceFile -> !targetDirectory.equals(sourceFile))
|
.filter(sourceFile -> !targetDirectory.equals(sourceFile))
|
||||||
@@ -41,11 +46,18 @@ class InlineMigrationStrategy extends BaseMigrationStrategy {
|
|||||||
sourceFile -> {
|
sourceFile -> {
|
||||||
Path targetFile = targetDirectory.resolve(sourceFile.getFileName());
|
Path targetFile = targetDirectory.resolve(sourceFile.getFileName());
|
||||||
if (Files.isDirectory(sourceFile)) {
|
if (Files.isDirectory(sourceFile)) {
|
||||||
moveData(sourceFile, targetFile);
|
moveData(sourceFile, targetFile, true);
|
||||||
} else {
|
} else {
|
||||||
moveFile(sourceFile, targetFile);
|
moveFile(sourceFile, targetFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
if (deleteDirectory) {
|
||||||
|
try {
|
||||||
|
Files.delete(sourceDirectory);
|
||||||
|
} catch (IOException e) {
|
||||||
|
LOG.warn("could not delete source repository directory {}", sourceDirectory);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user