MCPcopy Index your code
hub / github.com/foxcpp/maddy / AuthUsingHelper

Function AuthUsingHelper

internal/auth/external/helperauth.go:29–55  ·  view source on GitHub ↗
(binaryPath, accountName, password string)

Source from the content-addressed store, hash-verified

27)
28
29func AuthUsingHelper(binaryPath, accountName, password string) error {
30 cmd := exec.Command(binaryPath)
31 stdin, err := cmd.StdinPipe()
32 if err != nil {
33 return fmt.Errorf("helperauth: stdin init: %w", err)
34 }
35 if err := cmd.Start(); err != nil {
36 return fmt.Errorf("helperauth: process start: %w", err)
37 }
38 if _, err := io.WriteString(stdin, accountName+"\n"); err != nil {
39 return fmt.Errorf("helperauth: stdin write: %w", err)
40 }
41 if _, err := io.WriteString(stdin, password+"\n"); err != nil {
42 return fmt.Errorf("helperauth: stdin write: %w", err)
43 }
44 if err := cmd.Wait(); err != nil {
45 if exitErr, ok := err.(*exec.ExitError); ok {
46 // Exit code 1 is for authentication failure.
47 if exitErr.ExitCode() != 1 {
48 return fmt.Errorf("helperauth: %w: %v", err, string(exitErr.Stderr))
49 }
50 return module.ErrUnknownCredentials
51 }
52 return fmt.Errorf("helperauth: process wait: %w", err)
53 }
54 return nil
55}

Callers 3

AuthPlainMethod · 0.92
AuthPlainMethod · 0.92
AuthPlainMethod · 0.85

Calls 1

StartMethod · 0.65

Tested by

no test coverage detected