get.porter.sh/porter@v1.3.0/pkg/pkgmgmt/client/delete.go (about) 1 package client 2 3 import ( 4 "context" 5 "fmt" 6 "path/filepath" 7 8 "get.porter.sh/porter/pkg/pkgmgmt" 9 "get.porter.sh/porter/pkg/tracing" 10 ) 11 12 func (fs *FileSystem) Uninstall(ctx context.Context, opts pkgmgmt.UninstallOptions) error { 13 ctx, span := tracing.StartSpan(ctx) 14 defer span.EndSpan() 15 16 if opts.Name != "" { 17 return fs.uninstallByName(ctx, opts.Name) 18 } 19 20 return span.Error(fmt.Errorf("No %s name was provided to uninstall", fs.PackageType)) 21 } 22 23 func (fs *FileSystem) uninstallByName(ctx context.Context, name string) error { 24 log := tracing.LoggerFromContext(ctx) 25 26 parentDir, err := fs.GetPackagesDir() 27 if err != nil { 28 return log.Error(err) 29 } 30 pkgDir := filepath.Join(parentDir, name) 31 exists, _ := fs.FileSystem.Exists(pkgDir) 32 if exists { 33 err = fs.FileSystem.RemoveAll(pkgDir) 34 if err != nil { 35 return log.Error(fmt.Errorf("could not remove %s directory %q: %w", fs.PackageType, pkgDir, err)) 36 } 37 38 return nil 39 } 40 41 log.Debugf("Unable to find requested %s %s\n", fs.PackageType, name) 42 43 return nil 44 }