chmod 0700 $GNUPGHOME
# Create GPG key
-exec gpg --batch --passphrase '' --quick-generate-key gopher@golang.org
+exec gpg --batch --passphrase '' --quick-generate-key --verbose gopher@golang.org
exec gpg --list-secret-keys --with-colons gopher@golang.org
cp stdout keyinfo.txt
go run extract_key_id.go keyinfo.txt
-- extract_key_id.go --
package main
-import "fmt"
-import "io/ioutil"
-import "os"
-import "strings"
+import (
+ "fmt"
+ "os"
+ "strings"
+)
func main() {
- err := run(os.Args[1])
- if err != nil {
- panic(err)
- }
+ err := run(os.Args[1])
+ if err != nil {
+ panic(err)
+ }
}
func run(keyInfoFilePath string) error {
- contents, err := ioutil.ReadFile(keyInfoFilePath)
- if err != nil {
- return err
- }
- lines := strings.Split(string(contents), "\n")
- for _, line := range lines {
- fields := strings.Split(line, ":")
- if fields[0] == "sec" {
- fmt.Print(fields[4])
- return nil
- }
- }
- return fmt.Errorf("key ID not found in: %s", keyInfoFilePath)
+ contents, err := os.ReadFile(keyInfoFilePath)
+ if err != nil {
+ return err
+ }
+ lines := strings.Split(string(contents), "\n")
+ for _, line := range lines {
+ fields := strings.Split(line, ":")
+ if fields[0] == "sec" {
+ fmt.Print(fields[4])
+ return nil
+ }
+ }
+ return fmt.Errorf("key ID not found in: %s", keyInfoFilePath)
}
-- configure_signing_key.go --
package main
-import "io/ioutil"
-import "os"
-import "os/exec"
+import (
+ "os"
+ "os/exec"
+)
func main() {
- err := run(os.Args[1])
- if err != nil {
- panic(err)
- }
+ err := run(os.Args[1])
+ if err != nil {
+ panic(err)
+ }
}
func run(keyIdFilePath string) error {
- keyId, err := ioutil.ReadFile(keyIdFilePath)
- if err != nil {
- return err
- }
- gitCmd := exec.Command("git", "config", "user.signingKey", string(keyId))
- return gitCmd.Run()
+ keyId, err := os.ReadFile(keyIdFilePath)
+ if err != nil {
+ return err
+ }
+ gitCmd := exec.Command("git", "config", "user.signingKey", string(keyId))
+ return gitCmd.Run()
}