diff --git a/cmd/pm/main.go b/cmd/pm/main.go index 81fbc5c..76432a7 100644 --- a/cmd/pm/main.go +++ b/cmd/pm/main.go @@ -149,7 +149,7 @@ func main() { fatalf("usage: pm package create \n") } dir := args[0] - if err := pkg.Create(dir, signID); err != nil { + if err := pkg.Create(root, signID, dir); err != nil { fatalf("creating package: %v\n", err) } default: diff --git a/keyring/keyring.go b/keyring/keyring.go index 43dc428..5485318 100644 --- a/keyring/keyring.go +++ b/keyring/keyring.go @@ -340,3 +340,8 @@ func findKey(el openpgp.EntityList, id string) (*openpgp.Entity, error) { } return e, fmt.Errorf("key %q not found", id) } + +// FindSecretEntity searches for id in the secret keyring. +func FindSecretEntity(root, id string) (*openpgp.Entity, error) { + return nil, errors.New("NYI") +} diff --git a/pkg/pkg.go b/pkg/pkg.go index 62b4e68..ee57e0d 100644 --- a/pkg/pkg.go +++ b/pkg/pkg.go @@ -2,17 +2,25 @@ package pkg import ( "fmt" + "log" + "github.com/pkg/errors" "mcquay.me/fs" + "mcquay.me/pm/keyring" ) // Create traverses the contents of dir and emits a valid pkg, signed by id -func Create(dir, id string) error { +func Create(root, id, dir string) error { if !fs.Exists(dir) { return fmt.Errorf("%q: doesn't exist", dir) } if !fs.IsDir(dir) { return fmt.Errorf("%q: is not a directory", dir) } + e, err := keyring.FindSecretEntity(dir, id) + if err != nil { + return errors.Wrap(err, "find secret key") + } + log.Printf("found key: %v", e.PrimaryKey.KeyIdShortString()) return fmt.Errorf("creating package from %q for %q: NYI", dir, id) }