diff --git a/password/git.go b/password/git.go index fc4868dc89..4b271dbc51 100644 --- a/password/git.go +++ b/password/git.go @@ -33,6 +33,10 @@ func (s *Store) GitInit(signKey string) error { cmd.Dir = s.path cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr + + if s.debug { + fmt.Printf("store.GitInit: %s %+v\n", cmd.Path, cmd.Args) + } if err := cmd.Run(); err != nil { return fmt.Errorf("Failed to initialize git: %s", err) } @@ -59,6 +63,9 @@ func (s *Store) GitInit(signKey string) error { cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr + if s.debug { + fmt.Printf("store.GitInit: %s %+v\n", cmd.Path, cmd.Args) + } if err := cmd.Run(); err != nil { fmt.Printf("Failed to initialize git: %s\n", err) } @@ -81,6 +88,9 @@ func (s *Store) gitSetSignKey(sk string) error { cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr + if s.debug { + fmt.Printf("store.gitSetSignKey: %s %+v\n", cmd.Path, cmd.Args) + } if err := cmd.Run(); err != nil { return err } @@ -90,6 +100,9 @@ func (s *Store) gitSetSignKey(sk string) error { cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr + if s.debug { + fmt.Printf("store.gitSetSignKey: %s %+v\n", cmd.Path, cmd.Args) + } return cmd.Run() } @@ -101,6 +114,9 @@ func (s *Store) Git(args ...string) error { cmd.Stdin = os.Stdin cmd.Stderr = os.Stderr + if s.debug { + fmt.Printf("store.Git: %s %+v\n", cmd.Path, cmd.Args) + } if err := cmd.Run(); err != nil { return err } @@ -126,6 +142,9 @@ func (s *Store) gitAdd(files ...string) error { cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr + if s.debug { + fmt.Printf("store.gitAdd: %s %+v\n", cmd.Path, cmd.Args) + } if err := cmd.Run(); err != nil { return fmt.Errorf("failed to add files to git: %v", err) } @@ -144,6 +163,9 @@ func (s *Store) gitCommit(msg string) error { cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr + if s.debug { + fmt.Printf("store.gitCommit: %s %+v\n", cmd.Path, cmd.Args) + } if err := cmd.Run(); err != nil { return fmt.Errorf("failed to commit files to git: %v", err) } @@ -163,6 +185,9 @@ func (s *Store) gitConfigValue(key string) (string, error) { cmd.Stdout = buf cmd.Stderr = os.Stderr + if s.debug { + fmt.Printf("store.gitConfigValue: %s %+v\n", cmd.Path, cmd.Args) + } if err := cmd.Run(); err != nil { return "", err } diff --git a/password/root_store.go b/password/root_store.go index 719c53ce01..69a2d0056e 100644 --- a/password/root_store.go +++ b/password/root_store.go @@ -3,6 +3,7 @@ package password import ( "encoding/json" "fmt" + "os" "sort" "strings" @@ -27,6 +28,7 @@ type RootStore struct { Version string `json:"version"` ImportFunc ImportCallback `json:"-"` FsckFunc FsckCallback `json:"-"` + Debug bool `json:"-"` store *Store mounts map[string]*Store } @@ -47,6 +49,10 @@ func NewRootStore(path string) (*RootStore, error) { // init checks internal consistency and initializes sub stores // after unmarshaling func (r *RootStore) init() error { + if d := os.Getenv("GOPASS_DEBUG"); d == "true" { + r.Debug = true + } + if r.Mount == nil { r.Mount = make(map[string]string) } diff --git a/password/store.go b/password/store.go index 8155f76477..1f0b23174b 100644 --- a/password/store.go +++ b/password/store.go @@ -52,6 +52,7 @@ type Store struct { alwaysTrust bool importFunc ImportCallback fsckFunc FsckCallback + debug bool } // NewStore creates a new store, copying settings from the given root store @@ -73,6 +74,7 @@ func NewStore(alias, path string, r *RootStore) (*Store, error) { alwaysTrust: r.AlwaysTrust, importFunc: r.ImportFunc, fsckFunc: r.FsckFunc, + debug: r.Debug, recipients: make([]string, 0, 5), }