diff options
| author | Xe Iaso <me@xeiaso.net> | 2024-05-06 15:42:42 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2024-05-09 12:52:06 -0400 |
| commit | 7633140c29fc669607a79d5067b387ee958045c2 (patch) | |
| tree | 708f42ef28d925de9abddcb5ed664eb003f60ce9 /cmd | |
| parent | c1b2f4cb1aeda79660dae93779d5986b0044eac8 (diff) | |
| download | x-7633140c29fc669607a79d5067b387ee958045c2.tar.xz x-7633140c29fc669607a79d5067b387ee958045c2.zip | |
cmd/yeet: GPG signing
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/yeet/internal/mkrpm/mkrpm.go | 28 | ||||
| -rw-r--r-- | cmd/yeet/yeetfile.js | 2 |
2 files changed, 26 insertions, 4 deletions
diff --git a/cmd/yeet/internal/mkrpm/mkrpm.go b/cmd/yeet/internal/mkrpm/mkrpm.go index 71c48fd..e0904e3 100644 --- a/cmd/yeet/internal/mkrpm/mkrpm.go +++ b/cmd/yeet/internal/mkrpm/mkrpm.go @@ -17,8 +17,11 @@ import ( ) var ( - userName = flag.String("git-user-name", gitUserName(), "user name in Git") - userEmail = flag.String("git-user-email", gitUserEmail(), "user email in Git") + gpgKeyFile = flag.String("gpg-key-file", gpgKeyFileLocation(), "GPG key file to sign the package") + gpgKeyID = flag.String("gpg-key-id", "", "GPG key ID to sign the package") + gpgKeyPassword = flag.String("gpg-key-password", "", "GPG key password to sign the package") + userName = flag.String("git-user-name", gitUserName(), "user name in Git") + userEmail = flag.String("git-user-email", gitUserEmail(), "user email in Git") ) const ( @@ -26,6 +29,15 @@ const ( fallbackEmail = "mimi@xeserv.us" ) +func gpgKeyFileLocation() string { + folder, err := os.UserConfigDir() + if err != nil { + return "" + } + + return filepath.Join(folder, "within.website", "x", "yeet", "key.asc") +} + func gitUserName() string { name, err := gitconfig.User() if err != nil { @@ -76,8 +88,10 @@ func Build(p Package) (foutpath string, err error) { switch r.(type) { case error: err = r.(error) + slog.Error("mkrpm: error while building", "err", err) default: err = fmt.Errorf("mkrpm: error while building: %v", r) + slog.Error("mkrpm: error while building", "err", err) } } }() @@ -91,6 +105,7 @@ func Build(p Package) (foutpath string, err error) { return "", fmt.Errorf("mkrpm: can't make temporary directory") } defer os.RemoveAll(dir) + os.MkdirAll(dir, 0755) defer func() { os.Setenv("GOARCH", runtime.GOARCH) @@ -151,12 +166,19 @@ func Build(p Package) (foutpath string, err error) { info.Overridables.RPM.Group = p.Group + if *gpgKeyID != "" { + slog.Debug("using GPG key", "file", *gpgKeyFile, "id", gpgKeyID, "password", *gpgKeyPassword) + info.Overridables.RPM.Signature.KeyFile = *gpgKeyFile + info.Overridables.RPM.Signature.KeyID = gpgKeyID + info.Overridables.RPM.Signature.KeyPassphrase = *gpgKeyPassword + } + pkg, err := nfpm.Get("rpm") if err != nil { return "", fmt.Errorf("mkrpm: can't get RPM packager: %w", err) } - foutpath = fmt.Sprintf("%s-%s-%s.rpm", p.Name, p.Version, p.Goarch) + foutpath = pkg.ConventionalFileName(info) fout, err := os.Create(foutpath) if err != nil { return "", fmt.Errorf("mkrpm: can't create output file: %w", err) diff --git a/cmd/yeet/yeetfile.js b/cmd/yeet/yeetfile.js index ebf7acf..0dcd8fc 100644 --- a/cmd/yeet/yeetfile.js +++ b/cmd/yeet/yeetfile.js @@ -8,6 +8,6 @@ go.install(); goarch, build: (out) => { - go.build("-o", `${out}/usr/bin/`); + go.build("-o", `${out}/usr/bin/yeet`); }, }));
\ No newline at end of file |
