github.com/henvic/wedeploycli@v1.7.6-0.20200319005353-3630f582f284/deployment/internal/feedback/logs.go (about) 1 package feedback 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/henvic/browser" 8 "github.com/henvic/wedeploycli/defaults" 9 "github.com/henvic/wedeploycli/errorhandler" 10 "github.com/henvic/wedeploycli/fancy" 11 "github.com/henvic/wedeploycli/verbose" 12 ) 13 14 func (w *Watch) maybeSetOpenLogsFunc() { 15 var f = w.f 16 17 if len(f.BuildFailed) == 0 && len(f.DeployFailed) == 0 { 18 return 19 } 20 21 errorhandler.SetAfterError(func() { 22 w.maybeOpenLogs() 23 }) 24 } 25 26 func (w *Watch) maybeOpenLogs() { 27 var f = w.f 28 var fb = f.BuildFailed 29 var fd = f.DeployFailed 30 31 switch y, err := fancy.Boolean("Open browser to check the logs?"); { 32 case err != nil: 33 _, _ = fmt.Fprintf(os.Stderr, "%v", err) 34 fallthrough 35 case !y: 36 return 37 } 38 39 var u = fmt.Sprintf("https://%v%v/projects/%v/logs", 40 defaults.DashboardAddressPrefix, 41 w.ConfigContext.InfrastructureDomain(), 42 w.ProjectID) 43 44 switch { 45 case len(fb) == 1 && len(fd) == 0: 46 u += "?label=buildUid&logServiceId=" + fb[0] 47 case len(fb) == 0 && len(fd) == 1: 48 u += "?logServiceId=" + fd[0] 49 case len(fd) == 0: 50 u += "?label=buildUid" 51 } 52 53 if err := browser.OpenURL(u); err != nil { 54 fmt.Println("Open URL: (can't open automatically)", u) 55 verbose.Debug(err) 56 } 57 }