supabase-cli/internal/seed/buckets/buckets.go

34 lines
920 B
Go

package buckets
import (
"context"
"fmt"
"github.com/spf13/afero"
"github.com/supabase/cli/internal/storage/client"
"github.com/supabase/cli/internal/utils"
)
func Run(ctx context.Context, projectRef string, interactive bool, fsys afero.Fs) error {
api, err := client.NewStorageAPI(ctx, projectRef)
if err != nil {
return err
}
console := utils.NewConsole()
if !interactive {
console.IsTTY = false
}
filter := func(bucketId string) bool {
label := fmt.Sprintf("Bucket %s already exists. Do you want to overwrite its properties?", utils.Bold(bucketId))
shouldOverwrite, err := console.PromptYesNo(ctx, label, true)
if err != nil {
fmt.Fprintln(utils.GetDebugLogger(), err)
}
return shouldOverwrite
}
if err := api.UpsertBuckets(ctx, utils.Config.Storage.Buckets, filter); err != nil {
return err
}
return api.UpsertObjects(ctx, utils.Config.Storage.Buckets, utils.NewRootFS(fsys))
}