summaryrefslogtreecommitdiff
path: root/go/cmd/gitaly-upload-archive/main.go
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2018-03-21 11:58:20 +0000
committerSean McGivern <sean@mcgivern.me.uk>2018-03-21 11:58:20 +0000
commit2f07fa977e8119c6c4a2e2e73bb319751ea5c874 (patch)
tree8136b7672ab3cecba1dd68c75ff90dced152c836 /go/cmd/gitaly-upload-archive/main.go
parent9b9ada1013bd91e316c2e85b7c0f0ef8cb02f688 (diff)
parent27bdba30336bf31242b8168ae710a52246c8f9eb (diff)
downloadgitlab-shell-2f07fa977e8119c6c4a2e2e73bb319751ea5c874.tar.gz
Merge branch 'gitaly-upload-archive' into 'master'
Add Gitaly git-upload-archive migrated command See merge request gitlab-org/gitlab-shell!192
Diffstat (limited to 'go/cmd/gitaly-upload-archive/main.go')
-rw-r--r--go/cmd/gitaly-upload-archive/main.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/go/cmd/gitaly-upload-archive/main.go b/go/cmd/gitaly-upload-archive/main.go
new file mode 100644
index 0000000..c988baa
--- /dev/null
+++ b/go/cmd/gitaly-upload-archive/main.go
@@ -0,0 +1,45 @@
+package main
+
+import (
+ "encoding/json"
+ "fmt"
+ "os"
+
+ "gitlab.com/gitlab-org/gitlab-shell/go/internal/handler"
+ "gitlab.com/gitlab-org/gitlab-shell/go/internal/logger"
+
+ pb "gitlab.com/gitlab-org/gitaly-proto/go"
+)
+
+func init() {
+ logger.ProgName = "gitaly-upload-archive"
+}
+
+type uploadArchiveHandler func(gitalyAddress string, request *pb.SSHUploadArchiveRequest) (int32, error)
+
+func main() {
+ if err := handler.Prepare(); err != nil {
+ logger.Fatal("preparation failed", err)
+ }
+
+ code, err := uploadArchive(handler.UploadArchive, os.Args)
+
+ if err != nil {
+ logger.Fatal("upload-archive failed", err)
+ }
+
+ os.Exit(int(code))
+}
+
+func uploadArchive(handler uploadArchiveHandler, args []string) (int32, error) {
+ if n := len(args); n != 3 {
+ return 0, fmt.Errorf("wrong number of arguments: expected 2 arguments, got %v", args)
+ }
+
+ var request pb.SSHUploadArchiveRequest
+ if err := json.Unmarshal([]byte(args[2]), &request); err != nil {
+ return 0, fmt.Errorf("unmarshaling request json failed: %v", err)
+ }
+
+ return handler(args[1], &request)
+}