blob: f1dc82986174744d1749a8b6a876099123ae761b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// This file contains the implementation of a template function for retrieving variables from 'pass', the standard UNIX
// password manager.
package templater
import (
"fmt"
"os"
"os/exec"
"github.com/polydawn/meep"
)
type PassError struct {
meep.TraitAutodescribing
meep.TraitCausable
Output string
}
func GetFromPass(key string) (string, error) {
fmt.Fprintf(os.Stderr, "Attempting to look up %s in pass\n", key)
pass := exec.Command("pass", "show", key)
output, err := pass.CombinedOutput()
if err != nil {
return "", meep.New(
&PassError{Output: string(output)},
meep.Cause(err),
)
}
return string(output), nil
}
|