github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/cli/commands/dream/build/website.go (about) 1 package build 2 3 import ( 4 "fmt" 5 "os" 6 "path" 7 "strings" 8 9 dreamI18n "github.com/taubyte/tau-cli/i18n/dream" 10 websiteI18n "github.com/taubyte/tau-cli/i18n/website" 11 applicationLib "github.com/taubyte/tau-cli/lib/application" 12 dreamLib "github.com/taubyte/tau-cli/lib/dream" 13 websitePrompts "github.com/taubyte/tau-cli/prompts/website" 14 "github.com/urfave/cli/v2" 15 ) 16 17 func buildWebsite(ctx *cli.Context) error { 18 if !dreamLib.IsRunning() { 19 dreamI18n.Help().IsDreamlandRunning() 20 return dreamI18n.ErrorDreamlandNotStarted 21 } 22 23 website, err := websitePrompts.GetOrSelect(ctx) 24 if err != nil { 25 return err 26 } 27 28 builder, err := initBuild() 29 if err != nil { 30 return err 31 } 32 33 compileFor := &dreamLib.CompileForRepository{ 34 ProjectId: builder.project.Get().Id(), 35 ResourceId: website.Id, 36 Branch: builder.currentBranch, 37 } 38 39 if len(builder.selectedApp) > 0 { 40 app, err := applicationLib.Get(builder.selectedApp) 41 if err != nil { 42 return err 43 } 44 45 compileFor.ApplicationId = app.Id 46 } 47 48 splitName := strings.Split(website.RepoName, "/") 49 if len(splitName) != 2 { 50 return fmt.Errorf("invalid repository name `%s` expected `user/repo`", website.RepoName) 51 } 52 53 compileFor.Path = path.Join(builder.projectConfig.WebsiteLoc(), splitName[1]) 54 _, err = os.Stat(compileFor.Path) 55 if err != nil { 56 websiteI18n.Help().BeSureToCloneWebsite() 57 return err 58 } 59 60 return compileFor.Execute() 61 }