34 lines
920 B
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))
|
|
}
|