Files
shhh/internal/clis/hmsecrets/set-arr.go
T
2026-10-30 13:32:35 -07:00

58 lines
1.0 KiB
Go

package hmsecrets
import (
"encoding/json"
"fmt"
"os"
"github.com/spf13/cobra"
)
var arrValue []string
var arrFile string
func init() {
rootCmd.AddCommand(setArrCmd)
setArrCmd.Flags().StringArrayVarP(
&arrValue,
"value",
"v",
nil,
"array value to store in the secret",
)
setArrCmd.Flags().StringVarP(
&arrFile,
"value-file",
"f",
"",
"file that contains the secret value (in json) to set",
)
setArrCmd.MarkFlagsOneRequired("value-file", "value")
}
var setArrCmd = &cobra.Command{
Use: "set-array",
Short: "set-array [key]",
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cli := getClient()
if arrFile != "" {
arrJSONBytes, err := os.ReadFile(arrFile)
if err != nil {
return fmt.Errorf("reading array value file: %w", err)
}
err = json.Unmarshal(arrJSONBytes, &arrValue)
if err != nil {
return fmt.Errorf("reading value from array file: %w", err)
}
}
err := cli.PutStringArr(args[0], arrValue)
if err != nil {
return err
}
return nil
},
}