feat(cmd): made error messaging closer to coreutils

This commit is contained in:
Lewis Wynne 2025-12-17 14:13:46 +00:00
parent 221d4cd921
commit 60d74e5ec1
4 changed files with 62 additions and 27 deletions

View file

@ -22,6 +22,7 @@ THE SOFTWARE.
package cmd
import (
"fmt"
"io"
"github.com/dgraph-io/badger/v4"
@ -42,9 +43,10 @@ For example:
'Hello, {{ default "World" .NAME }}' will default to World if NAME is blank.
'Hello, {{ require .NAME }}' will error if NAME is blank.
'{{ enum .NAME "Alice" "Bob" }}' allows only NAME=Alice or NAME=Bob.`,
Aliases: []string{"s"},
Args: cobra.RangeArgs(1, 2),
RunE: set,
Aliases: []string{"s"},
Args: cobra.RangeArgs(1, 2),
RunE: set,
SilenceUsage: true,
}
func set(cmd *cobra.Command, args []string) error {
@ -56,18 +58,18 @@ func set(cmd *cobra.Command, args []string) error {
} else {
bytes, err := io.ReadAll(cmd.InOrStdin())
if err != nil {
return err
return fmt.Errorf("cannot set '%s': %v", args[0], err)
}
value = bytes
}
secret, err := cmd.Flags().GetBool("secret")
if err != nil {
return err
return fmt.Errorf("cannot set '%s': %v", args[0], err)
}
ttl, err := cmd.Flags().GetDuration("ttl")
if err != nil {
return err
return fmt.Errorf("cannot set '%s': %v", args[0], err)
}
trans := TransactionArgs{