58 lines
1.0 KiB
Go
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
|
|
},
|
|
}
|