in main.go [1109:1159]
func updateRun(cmd *cobra.Command, args []string) error {
ctx, client, err := clientWithContext(cmd.Context())
if err != nil {
return misuseError(err)
}
ref, err := parseRef(args[0])
if err != nil {
return misuseError(err)
}
var plaintext []byte
if len(args) > 1 {
plaintext, err = readData(strings.TrimSpace(args[1]))
if err != nil {
return misuseError(err)
}
}
switch t := ref.Type(); t {
case berglas.ReferenceTypeSecretManager:
secret, err := client.Update(ctx, &berglas.SecretManagerUpdateRequest{
Project: ref.Project(),
Name: ref.Name(),
Plaintext: plaintext,
CreateIfMissing: createIfMissing,
})
if err != nil {
return apiError(err)
}
fmt.Fprintf(stdout, "Successfully updated secret [%s] to version [%s]\n",
secret.Name, secret.Version)
case berglas.ReferenceTypeStorage:
secret, err := client.Update(ctx, &berglas.StorageUpdateRequest{
Bucket: ref.Bucket(),
Object: ref.Object(),
Key: key,
Plaintext: plaintext,
CreateIfMissing: createIfMissing,
})
if err != nil {
return apiError(err)
}
fmt.Fprintf(stdout, "Successfully updated secret [%s] to generation [%d]\n",
secret.Name, secret.Generation)
default:
return misuseError(fmt.Errorf("unknown type %T", t))
}
return nil
}