func updateRun()

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
}