github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/lib/website/methods.go (about)

     1  package websiteLib
     2  
     3  import (
     4  	"fmt"
     5  
     6  	structureSpec "github.com/taubyte/go-specs/structure"
     7  )
     8  
     9  func New(website *structureSpec.Website) error {
    10  	return set(website, true)
    11  }
    12  
    13  func Set(website *structureSpec.Website) error {
    14  	return set(website, 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.website.Delete()
    24  }
    25  
    26  func List() ([]string, error) {
    27  	_, _, websites, err := list()
    28  	if err != nil {
    29  		return nil, err
    30  	}
    31  
    32  	return websites, nil
    33  }
    34  
    35  func ListResources() ([]*structureSpec.Website, error) {
    36  	project, application, relative, err := list()
    37  	if err != nil {
    38  		return nil, err
    39  	}
    40  
    41  	websites := make([]*structureSpec.Website, len(relative))
    42  	for idx, name := range relative {
    43  		website, err := project.Website(name, application)
    44  		if err != nil {
    45  			return nil, err
    46  		}
    47  
    48  		websites[idx], err = website.Get().Struct()
    49  		if err != nil {
    50  			return nil, err
    51  		}
    52  	}
    53  
    54  	return websites, nil
    55  }
    56  
    57  func GetRepositoryUrl(website *structureSpec.Website) string {
    58  	switch website.Provider {
    59  	case "github":
    60  		return "https://github.com/" + website.RepoName
    61  	default:
    62  		panic(fmt.Sprintf("url for provider: `%s` not found", website.Provider))
    63  	}
    64  }