Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(server): mkdirs before cloning problems #588

Merged
merged 1 commit into from
Feb 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
public interface FileSystem {
void createDirectory(Path dirPath);
boolean directoryExists(Path dirPath);
void copyDirectory(Path srcPath, Path destPath);
void createFile(Path filePath);
void removeFile(Path filePath);
File getFile(Path filePath);
Expand All @@ -28,7 +29,4 @@ default void writeToFile(Path filePath, String content) {
default String readFromFile(Path filePath) {
return new String(readByteArrayFromFile(filePath));
}

void copyDirectory(Path src, Path dest);
void copy(Path src, Path dest);
}
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,11 @@ public boolean directoryExists(Path dirPath) {
throw new UnsupportedOperationException();
}

@Override
public void copyDirectory(Path srcPath, Path destPath) {
throw new UnsupportedOperationException();
}

@Override
public void createFile(Path filePath) {
throw new UnsupportedOperationException();
Expand Down Expand Up @@ -213,14 +218,4 @@ public byte[] readByteArrayFromFile(Path filePath) {
throw new RuntimeException(e);
}
}

@Override
public void copyDirectory(Path src, Path dest) {
throw new UnsupportedOperationException();
}

@Override
public void copy(Path src, Path dest) {
throw new UnsupportedOperationException();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ public boolean directoryExists(Path dirPath) {
return local.directoryExists(dirPath);
}

@Override
public void copyDirectory(Path srcPath, Path destPath) {
local.copyDirectory(srcPath, destPath);
}

@Override
public void createFile(Path filePath) {
local.createFile(filePath);
Expand Down Expand Up @@ -102,14 +107,4 @@ public byte[] readByteArrayFromFile(Path filePath) {
return aws.readByteArrayFromFile(filePath);
}
}

@Override
public void copyDirectory(Path src, Path dest) {
local.copyDirectory(src, dest);
}

@Override
public void copy(Path src, Path dest) {
local.copy(src, dest);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,15 @@ public boolean directoryExists(Path dirPath) {
return Files.isDirectory(baseDir.resolve(dirPath));
}

@Override
public void copyDirectory(Path srcPath, Path destPath) {
try (Stream<Path> stream = Files.walk(baseDir.resolve(srcPath))) {
stream.forEach(src -> copy(src, baseDir.resolve(destPath).resolve(baseDir.resolve(srcPath).relativize(src))));
} catch (IOException e) {
throw new RuntimeException(e);
}
}

@Override
public void createFile(Path filePath) {
writeByteArrayToFile(filePath, new byte[0]);
Expand Down Expand Up @@ -218,20 +227,10 @@ public byte[] readByteArrayFromFile(Path filePath) {
}
}

@Override
public void copyDirectory(Path src, Path dest) {
try (Stream<Path> stream = Files.walk(src)) {
stream.forEach(source -> copy(source, dest.resolve(src.relativize(source))));
} catch (IOException e) {
throw new RuntimeException(e);
}
}

@Override
public void copy(Path src, Path dest) {
private static void copy(Path src, Path dest) {
try {
Files.copy(src, dest, REPLACE_EXISTING, COPY_ATTRIBUTES);
} catch (Exception e) {
} catch (IOException e) {
throw new RuntimeException(e.getMessage(), e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ public boolean directoryExists(Path dirPath) {
return false;
}

@Override
public void copyDirectory(Path srcPath, Path destPath) {}

@Override
public void createFile(Path filePath) {}

Expand Down Expand Up @@ -78,11 +81,5 @@ public void writeByteArrayToFile(Path filePath, byte[] content) {}
public byte[] readByteArrayFromFile(Path filePath) {
return new byte[0];
}

@Override
public void copyDirectory(Path src, Path dest) {}

@Override
public void copy(Path src, Path dest) {}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,11 @@ public void init(Path rootDirPath) {

@Override
public void clone(Path originDirPath, Path rootDirPath) {
String srcDirAbsolutePath = fs.getFile(originDirPath).getAbsolutePath();
String destDirAbsolutePath = fs.getFile(rootDirPath).getAbsolutePath();

fs.copyDirectory(Path.of(srcDirAbsolutePath), Path.of(destDirAbsolutePath));
fs.createDirectory(rootDirPath);
fs.copyDirectory(originDirPath, rootDirPath);

File destDir = fs.getFile(rootDirPath);
String destURI = "file://" + srcDirAbsolutePath;
String destURI = "file://" + fs.getFile(originDirPath).getAbsolutePath();

try {
org.eclipse.jgit.api.Git.open(destDir).remoteAdd().setName("origin").setUri(new URIish(destURI)).call();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ public boolean directoryExists(Path dirPath) {
throw new UnsupportedOperationException();
}

@Override
public void copyDirectory(Path srcPath, Path destPath) {}

@Override
public void createFile(Path filePath) {
throw new UnsupportedOperationException();
Expand Down Expand Up @@ -135,10 +138,4 @@ public void writeByteArrayToFile(Path filePath, byte[] content) {}
public byte[] readByteArrayFromFile(Path filePath) {
return fs.get(filePath);
}

@Override
public void copyDirectory(Path src, Path dest) {}

@Override
public void copy(Path src, Path dest) {}
}
Loading