fix import-bundle: override docker entrypoint for tar/mv/rm commands

Anton Kaminsky29d agoea47cea65529parent 90d5eb8
1 file changed+15-8
api/src/routes/repos.ts
@@ -813,18 +813,23 @@
813813 await runDocker([
814814 "run", "--rm",
815815 "-v", "/data/grove:/data/grove",
816 "--entrypoint", "tar",
816817 "grove/mononoke:latest",
817 "tar", "xzf", tarPath, "-C", `${DATA_DIR}`,
818 "xzf", tarPath, "-C", `${DATA_DIR}`,
818819 ], (line) => {
819820 send("log", { step: "upload", line });
820821 });
821822
822823 // The tar extracts as bare.git/ — rename to match expected path
823 try {
824 execSync(`mv ${DATA_DIR}/bare.git ${bareRepo}`, { stdio: "pipe" });
825 } catch {
826 // Already at the right path (tarball used repo name)
827 }
824 await runDocker([
825 "run", "--rm",
826 "-v", "/data/grove:/data/grove",
827 "--entrypoint", "mv",
828 "grove/mononoke:latest",
829 `${DATA_DIR}/bare.git`, bareRepo,
830 ], () => {}).catch(() => {
831 // Already at the right path
832 });
828833
829834 send("progress", { step: "upload", message: "Extracted." });
830835
@@ -865,8 +870,9 @@
865870 await runDocker([
866871 "run", "--rm",
867872 "-v", "/data/grove:/data/grove",
873 "--entrypoint", "rm",
868874 "grove/mononoke:latest",
869 "rm", "-rf", bareRepo, tarPath,
875 "-rf", bareRepo, tarPath,
870876 ], () => {});
871877
872878 send("done", { success: true });
@@ -875,8 +881,9 @@
875881 await runDocker([
876882 "run", "--rm",
877883 "-v", "/data/grove:/data/grove",
884 "--entrypoint", "rm",
878885 "grove/mononoke:latest",
879 "rm", "-rf", bareRepo, tarPath,
886 "-rf", bareRepo, tarPath,
880887 ], () => {}).catch(() => {});
881888
882889 send("error", { message: err.message ?? "Import failed" });
883890