forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

hook: get push options and pass them

Signed-off-by: dusk <y.bera003.06@protonmail.com>

Change-Id: sknkqpvptxsxtulrqrrzkwttmxqlykom

authored by ptr.pet and committed by Tangled 690d4b2f 67da5514

Changed files
+16 -1
hook
+10
hook/hook.go
··· 36 Usage: "endpoint for the internal API", 37 Value: "http://localhost:5444", 38 }, 39 }, 40 Commands: []*cli.Command{ 41 { ··· 52 userDid := cmd.String("user-did") 53 userHandle := cmd.String("user-handle") 54 endpoint := cmd.String("internal-api") 55 56 payloadReader := bufio.NewReader(os.Stdin) 57 payload, _ := payloadReader.ReadString('\n') ··· 67 req.Header.Set("X-Git-Dir", gitDir) 68 req.Header.Set("X-Git-User-Did", userDid) 69 req.Header.Set("X-Git-User-Handle", userHandle) 70 71 resp, err := client.Do(req) 72 if err != nil {
··· 36 Usage: "endpoint for the internal API", 37 Value: "http://localhost:5444", 38 }, 39 + &cli.StringSliceFlag{ 40 + Name: "push-option", 41 + Usage: "any push option from git", 42 + }, 43 }, 44 Commands: []*cli.Command{ 45 { ··· 56 userDid := cmd.String("user-did") 57 userHandle := cmd.String("user-handle") 58 endpoint := cmd.String("internal-api") 59 + pushOptions := cmd.StringSlice("push-option") 60 61 payloadReader := bufio.NewReader(os.Stdin) 62 payload, _ := payloadReader.ReadString('\n') ··· 72 req.Header.Set("X-Git-Dir", gitDir) 73 req.Header.Set("X-Git-User-Did", userDid) 74 req.Header.Set("X-Git-User-Handle", userHandle) 75 + if pushOptions != nil { 76 + for _, option := range pushOptions { 77 + req.Header.Add("X-Git-Push-Option", option) 78 + } 79 + } 80 81 resp, err := client.Do(req) 82 if err != nil {
+6 -1
hook/setup.go
··· 133 134 hookContent := fmt.Sprintf(`#!/usr/bin/env bash 135 # AUTO GENERATED BY KNOT, DO NOT MODIFY 136 - %s hook -git-dir "$GIT_DIR" -user-did "$GIT_USER_DID" -user-handle "$GIT_USER_HANDLE" -internal-api "%s" post-recieve 137 `, executablePath, config.internalApi) 138 139 return os.WriteFile(hookPath, []byte(hookContent), 0755)
··· 133 134 hookContent := fmt.Sprintf(`#!/usr/bin/env bash 135 # AUTO GENERATED BY KNOT, DO NOT MODIFY 136 + push_options=() 137 + for ((i=0; i<GIT_PUSH_OPTION_COUNT; i++)); do 138 + option_var="GIT_PUSH_OPTION_$i" 139 + push_options+=(-push-option "${!option_var}") 140 + done 141 + %s hook -git-dir "$GIT_DIR" -user-did "$GIT_USER_DID" -user-handle "$GIT_USER_HANDLE" -internal-api "%s" "${push_options[@]}" post-recieve 142 `, executablePath, config.internalApi) 143 144 return os.WriteFile(hookPath, []byte(hookContent), 0755)