From 31bc17cb0dd2c83c5197b7da0f399450c53bb7f6 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Thu, 7 Mar 2024 23:40:35 -0500 Subject: [PATCH] Remove the gpg-gen file after use --- src/cli/init.go | 1 + src/offline/init.go | 9 +++++++-- src/offline/initUNIX.go | 1 + src/offline/initWIN.go | 1 + src/offline/utilitiesMisc.go | 1 + 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/cli/init.go b/src/cli/init.go index b461111..9e3ef80 100644 --- a/src/cli/init.go +++ b/src/cli/init.go @@ -4,6 +4,7 @@ import ( "github.com/rwinkhart/MUTN/src/offline" ) +// TempInitCli initializes the MUTN environment based on user input func TempInitCli() { // gpgID var gpgID string diff --git a/src/offline/init.go b/src/offline/init.go index cf7d93f..51f4180 100644 --- a/src/offline/init.go +++ b/src/offline/init.go @@ -1,12 +1,12 @@ package offline import ( - "fmt" "os" "os/exec" "strings" ) +// TempInit ensures libmutton directories exist and writes the libmutton configuration file func TempInit(configFileMap map[string]string) { // create EntryRoot and ConfigDir dirInit() @@ -51,6 +51,7 @@ func GpgUIDListGen() []string { // GpgKeyGen generates a new GPG key and returns the key ID as a string func GpgKeyGen() string { + // create and write gpg-gen file createFile(ConfigDir+"/gpg-gen", []string{"Key-Type: eddsa", "Key-Curve: ed25519", "Key-Usage: sign", "Subkey-Type: ecdh", "Subkey-Curve: cv25519", "Subkey-Usage: encrypt", "Name-Real: libmutton", "Name-Comment: gpg-libmutton", "Name-Email: github.com/rwinkhart/libmutton", "Expire-Date: 0"}) cmd := exec.Command("gpg", "-q", "--batch", "--generate-key", ConfigDir+"/gpg-gen") cmd.Stdout = os.Stdout @@ -58,10 +59,14 @@ func GpgKeyGen() string { cmd.Stdin = os.Stdin cmd.Run() + // generate GPG key based on gog-gen file cmd = exec.Command("gpg", "-k", "--with-colons") gpgOutputBytes, _ := cmd.Output() gpgOutputLines := strings.Split(string(gpgOutputBytes), "\n") uid := strings.Split(gpgOutputLines[len(gpgOutputLines)-4], ":")[9] - fmt.Println(uid) + + // remove gpg-gen file + removeFile(ConfigDir + "/gpg-gen") + return uid } diff --git a/src/offline/initUNIX.go b/src/offline/initUNIX.go index 32ea062..1986bd2 100644 --- a/src/offline/initUNIX.go +++ b/src/offline/initUNIX.go @@ -9,6 +9,7 @@ import ( const fallbackEditor = "vi" // vi is pre-installed on most UNIX systems +// dirInit creates the libmutton directories func dirInit() { // create EntryRoot err := os.MkdirAll(EntryRoot, 0700) diff --git a/src/offline/initWIN.go b/src/offline/initWIN.go index 809e60d..3f4ab9c 100644 --- a/src/offline/initWIN.go +++ b/src/offline/initWIN.go @@ -9,6 +9,7 @@ import ( const fallbackEditor = "nvim" // since there is no pre-installed CLI editor on Windows, default to the most popular one +// dirInit creates the libmutton directories func dirInit() { // create EntryRoot (includes config directory on Windows) err := os.MkdirAll(EntryRoot, 0700) diff --git a/src/offline/utilitiesMisc.go b/src/offline/utilitiesMisc.go index dc91fc9..9ff3666 100644 --- a/src/offline/utilitiesMisc.go +++ b/src/offline/utilitiesMisc.go @@ -126,6 +126,7 @@ func StringGen(length int, complex bool, complexity float64) string { } } +// EntryIsNotEmpty iterates through entryData and returns true if any line is not empty func EntryIsNotEmpty(entryData []string) bool { for _, line := range entryData { if line != "" {