MCPcopy Create free account
hub / github.com/belak/gitdir / cmdHook

Function cmdHook

cmd/gitdir/cmd_hook.go:14–49  ·  view source on GitHub ↗
(c Config)

Source from the content-addressed store, hash-verified

12)
13
14func cmdHook(c Config) {
15 log.Info().Msg("starting hook")
16
17 if len(os.Args) < 3 {
18 log.Fatal().Msg("missing hook name")
19 }
20
21 path, ok := os.LookupEnv("GITDIR_HOOK_REPO_PATH")
22 if !ok {
23 log.Fatal().Msg("missing repo path")
24 }
25
26 pkData, ok := os.LookupEnv("GITDIR_HOOK_PUBLIC_KEY")
27 if !ok {
28 log.Fatal().Msg("missing public key")
29 }
30
31 pk, err := models.ParsePublicKey([]byte(pkData))
32 if err != nil {
33 log.Fatal().Err(err).Msg("failed to parse public key")
34 }
35
36 config := gitdir.NewConfig(c.FS())
37
38 err = config.Load()
39 if err != nil {
40 log.Fatal().Err(err).Msg("failed to load gitdir")
41 }
42
43 // Call the actual hook
44 err = config.RunHook(os.Args[2], path, pk, os.Args[3:], os.Stdin)
45 if err != nil {
46 fmt.Println(err)
47 os.Exit(1)
48 }
49}

Callers 1

mainFunction · 0.85

Calls 4

LoadMethod · 0.95
RunHookMethod · 0.95
ParsePublicKeyFunction · 0.92
FSMethod · 0.80

Tested by

no test coverage detected