github.com/supabase/cli@v1.168.1/internal/unlink/unlink.go (about)

     1  package unlink
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"os"
     7  
     8  	"github.com/go-errors/errors"
     9  	"github.com/spf13/afero"
    10  	"github.com/supabase/cli/internal/utils"
    11  	"github.com/supabase/cli/internal/utils/credentials"
    12  	"github.com/supabase/cli/internal/utils/flags"
    13  	"github.com/zalando/go-keyring"
    14  )
    15  
    16  func Run(ctx context.Context, fsys afero.Fs) error {
    17  	projectRef, err := flags.LoadProjectRef(fsys)
    18  	if err != nil {
    19  		return err
    20  	}
    21  
    22  	fmt.Fprintln(os.Stderr, "Unlinking project:", projectRef)
    23  	// Remove temp directory
    24  	if err := fsys.RemoveAll(utils.TempDir); err != nil {
    25  		return errors.Errorf("failed to remove temp directory: %w", err)
    26  	}
    27  	// Remove linked credentials
    28  	if err := credentials.Delete(projectRef); err != nil &&
    29  		!errors.Is(err, credentials.ErrNotSupported) &&
    30  		!errors.Is(err, keyring.ErrNotFound) {
    31  		return err
    32  	}
    33  
    34  	fmt.Fprintln(os.Stdout, "Finished "+utils.Aqua("supabase unlink")+".")
    35  	return nil
    36  }