From 79c3e140821b07a4cdde0c10d3d18550ff0d1604 Mon Sep 17 00:00:00 2001 From: jolheiser Date: Mon, 29 Jul 2024 14:08:31 -0500 Subject: [PATCH] feat: pre-receive.d Signed-off-by: jolheiser --- cmd/ugitd/main.go | 7 +++++++ internal/git/protocol_git.go | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/ugitd/main.go b/cmd/ugitd/main.go index f968711..025eb8c 100644 --- a/cmd/ugitd/main.go +++ b/cmd/ugitd/main.go @@ -149,12 +149,19 @@ func requiredFS(repoDir string) error { } fp = filepath.Join(fp, "pre-receive") + if err := os.MkdirAll(fp+".d", os.ModePerm); err != nil { + return err + } + fi, err := os.Create(fp) if err != nil { return err } fi.WriteString("#!/usr/bin/env bash\n") fi.WriteString(fmt.Sprintf("%s pre-receive-hook\n", bin)) + fi.WriteString(fmt.Sprintf(`for hook in %s.d/*; do + "${hook}" +done`, fp)) fi.Close() return os.Chmod(fp, 0o755) diff --git a/internal/git/protocol_git.go b/internal/git/protocol_git.go index 332c893..f0aeef6 100644 --- a/internal/git/protocol_git.go +++ b/internal/git/protocol_git.go @@ -58,7 +58,6 @@ func gitService(ctx ReadWriteContexter, command, repoDir string, args ...string) cmd.Env = append(os.Environ(), fmt.Sprintf("UGIT_REPODIR=%s", repoDir), "GIT_PROTOCOL=version=2") cmd.Stdin = ctx cmd.Stdout = ctx - fmt.Println(cmd.Env, cmd.String()) return cmd.Run() }