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  }