From eba7cbe696c9772ba99da979ac163d68866d7192 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 14 Jan 2021 13:56:19 +0000 Subject: [PATCH] Implement gzip in FSGitRepoStore --- .../bridge/repo/FSGitRepoStore.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/repo/FSGitRepoStore.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/repo/FSGitRepoStore.java index 72eb44a5b4..c440f30115 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/repo/FSGitRepoStore.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/repo/FSGitRepoStore.java @@ -139,6 +139,15 @@ public class FSGitRepoStore implements RepoStore { return Tar.bz2.zip(getDotGitForProject(projectName), sizePtr); } + @Override + public InputStream gzipProject( + String projectName, + long[] sizePtr + ) throws IOException { + Project.checkValidProjectName(projectName); + return Tar.gzip.zip(getDotGitForProject(projectName), sizePtr); + } + @Override public void gcProject(String projectName) throws IOException { Project.checkValidProjectName(projectName); @@ -171,6 +180,25 @@ public class FSGitRepoStore implements RepoStore { Tar.bz2.unzip(dataStream, getDirForProject(projectName)); } + @Override + public void ungzipProject( + String projectName, + InputStream dataStream + ) throws IOException { + Preconditions.checkArgument( + Project.isValidProjectName(projectName), + "[%s] invalid project name: ", + projectName + ); + Preconditions.checkState( + getDirForProject(projectName).mkdirs(), + "[%s] directories for " + + "evicted project already exist", + projectName + ); + Tar.gzip.unzip(dataStream, getDirForProject(projectName)); + } + private File getDirForProject(String projectName) { Project.checkValidProjectName(projectName); return Paths.get(