github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/lib/storage/methods.go (about) 1 package storageLib 2 3 import ( 4 structureSpec "github.com/taubyte/go-specs/structure" 5 "golang.org/x/text/cases" 6 "golang.org/x/text/language" 7 ) 8 9 func New(storage *structureSpec.Storage) error { 10 return set(storage, true) 11 } 12 13 func Set(storage *structureSpec.Storage) error { 14 return set(storage, false) 15 } 16 17 func Delete(name string) error { 18 info, err := get(name) 19 if err != nil { 20 return err 21 } 22 23 return info.storage.Delete() 24 } 25 26 func List() ([]string, error) { 27 _, _, storages, err := list() 28 if err != nil { 29 return nil, err 30 } 31 32 return storages, nil 33 } 34 35 func ListResources() ([]*structureSpec.Storage, error) { 36 project, application, relative, err := list() 37 if err != nil { 38 return nil, err 39 } 40 41 storages := make([]*structureSpec.Storage, len(relative)) 42 for idx, name := range relative { 43 storage, err := project.Storage(name, application) 44 if err != nil { 45 return nil, err 46 } 47 48 storages[idx], err = storage.Get().Struct() 49 if err != nil { 50 return nil, err 51 } 52 53 // TODO do this in prompts 54 storages[idx].Type = cases.Title(language.English).String(storages[idx].Type) 55 } 56 57 return storages, nil 58 }