diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2017-04-28 18:16:55 +0200 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2017-05-23 15:26:35 +0200 |
commit | 25a32cfa1e0b1c7e6af723053bad0f432ffd0b32 (patch) | |
tree | bc6d2958eeedb0b0c15d329ec90cc6d0d90cb919 /go/internal/handler/handler.go | |
parent | 285c061ed8933c0d94a9ad027f99653039673324 (diff) | |
download | gitlab-shell-25a32cfa1e0b1c7e6af723053bad0f432ffd0b32.tar.gz |
Use gitaly-upload-pack and gitaly-receive-pack
Diffstat (limited to 'go/internal/handler/handler.go')
-rw-r--r-- | go/internal/handler/handler.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/go/internal/handler/handler.go b/go/internal/handler/handler.go new file mode 100644 index 0000000..927998d --- /dev/null +++ b/go/internal/handler/handler.go @@ -0,0 +1,38 @@ +package handler + +import ( + "os" + "os/exec" + "syscall" + + "gitlab.com/gitlab-org/gitlab-shell/go/internal/config" + "gitlab.com/gitlab-org/gitlab-shell/go/internal/logger" +) + +func Prepare() error { + cfg, err := config.New() + if err != nil { + return err + } + + if err := logger.Configure(cfg); err != nil { + return err + } + + // Use a working directory that won't get removed or unmounted. + if err := os.Chdir("/"); err != nil { + return err + } + + return nil +} + +func execCommand(command string, args ...string) error { + binPath, err := exec.LookPath(command) + if err != nil { + return err + } + + args = append([]string{binPath}, args...) + return syscall.Exec(binPath, args, os.Environ()) +} |