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  }