From 03d1b9a7286d5797c8b3a08662733e08f81b195d Mon Sep 17 00:00:00 2001 From: Fabian Siegel Date: Fri, 8 Jan 2021 23:31:42 +0100 Subject: [PATCH] extracted logging into package --- .idea/.gitignore | 8 +++ .idea/bb.iml | 8 +++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 ++ cmd/commands/api/api.go | 7 +- cmd/commands/auth/login/login.go | 15 ++-- cmd/commands/downloads/download/download.go | 23 ++++--- cmd/commands/downloads/list/list.go | 5 +- cmd/commands/downloads/upload/upload.go | 14 ++-- cmd/commands/pipelines/list/list.go | 3 +- cmd/commands/pipelines/logs/logs.go | 7 +- cmd/commands/pipelines/view/view.go | 7 +- cmd/commands/pr/approve/approve.go | 18 ++--- cmd/commands/pr/checkout/checkout.go | 10 +-- cmd/commands/pr/comments/comments.go | 11 +-- cmd/commands/pr/create/create.go | 39 +++++------ cmd/commands/pr/diff/diff.go | 14 ++-- cmd/commands/pr/list/list.go | 7 +- cmd/commands/pr/merge/merge.go | 14 ++-- .../pr/requestchanges/requestchanges.go | 18 ++--- cmd/commands/pr/statuses/statuses.go | 11 +-- cmd/commands/pr/view/view.go | 17 ++--- cmd/commands/repo/clone/clone.go | 15 ++-- cmd/commands/repo/view/view.go | 9 +-- cmd/root.go | 7 +- go.mod | 8 --- go.sum | 68 ++++++------------- util/logging/logging.go | 26 +++++++ 28 files changed, 219 insertions(+), 184 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/bb.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 util/logging/logging.go diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/bb.iml b/.idea/bb.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/.idea/bb.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..c53d7bd --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/cmd/commands/api/api.go b/cmd/commands/api/api.go index 9ca9882..0c42744 100644 --- a/cmd/commands/api/api.go +++ b/cmd/commands/api/api.go @@ -3,6 +3,7 @@ package api import ( "bytes" "fmt" + "github.com/craftamap/bb/util/logging" "io/ioutil" "net/http" "os" @@ -46,7 +47,7 @@ func Add(rootCmd *cobra.Command, globalOpts *options.GlobalOptions) { req, err := http.NewRequest(Method, url, bytes.NewBufferString(reqBody)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } req.SetBasicAuth(globalOpts.Client.Username, globalOpts.Client.Password) @@ -59,7 +60,7 @@ func Add(rootCmd *cobra.Command, globalOpts *options.GlobalOptions) { } response, err := client.Do(req) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -67,7 +68,7 @@ func Add(rootCmd *cobra.Command, globalOpts *options.GlobalOptions) { resBody, err := ioutil.ReadAll(response.Body) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } diff --git a/cmd/commands/auth/login/login.go b/cmd/commands/auth/login/login.go index a9f8c4e..b01c7e9 100644 --- a/cmd/commands/auth/login/login.go +++ b/cmd/commands/auth/login/login.go @@ -2,6 +2,7 @@ package login import ( "fmt" + "github.com/craftamap/bb/util/logging" "github.com/AlecAivazis/survey/v2" "github.com/craftamap/bb/cmd/options" @@ -21,7 +22,7 @@ func Add(authCmd *cobra.Command, globalOpts *options.GlobalOptions) { cont := false err := survey.AskOne(&survey.Confirm{Message: "Do you want to overwrite this?"}, &cont) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -30,9 +31,9 @@ func Add(authCmd *cobra.Command, globalOpts *options.GlobalOptions) { } } - fmt.Println(aurora.Green("::"), "In order to use bb, you need to create an app password for bitbucket.org. Navigate to") - fmt.Println(aurora.Green("::"), aurora.Index(242, "https://bitbucket.org/account/settings/app-passwords/")) - fmt.Println(aurora.Green("::"), "And create an app password for your account with the required permissions.") + logging.Success("In order to use bb, you need to create an app password for bitbucket.org. Navigate to") + logging.Success(aurora.Index(242, "https://bitbucket.org/account/settings/app-passwords/")) + logging.Success("And create an app password for your account with the required permissions.") answers := struct { Username string @@ -55,7 +56,7 @@ func Add(authCmd *cobra.Command, globalOpts *options.GlobalOptions) { }, &answers) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -64,11 +65,11 @@ func Add(authCmd *cobra.Command, globalOpts *options.GlobalOptions) { err = viper.WriteConfig() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } - fmt.Println(aurora.Green("::"), "Stored credentials successfully to", viper.ConfigFileUsed()) + logging.Success(fmt.Sprint("Stored credentials successfully to", viper.ConfigFileUsed())) }, } diff --git a/cmd/commands/downloads/download/download.go b/cmd/commands/downloads/download/download.go index 95d2fdd..38c4403 100644 --- a/cmd/commands/downloads/download/download.go +++ b/cmd/commands/downloads/download/download.go @@ -3,6 +3,7 @@ package download import ( "crypto/rand" "fmt" + "github.com/craftamap/bb/util/logging" "io" "math/big" "net/http" @@ -60,7 +61,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if dir != "" { info, err := os.Stat(dir) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if !info.IsDir() { @@ -87,51 +88,51 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { c := globalOpts.Client bbrepo := globalOpts.BitbucketRepo - fmt.Printf("%s%s\n", aurora.Green(":: "), "Getting all downloads") + logging.Success("Getting all downloads") downloads, err := c.GetDownloads(bbrepo.RepoOrga, bbrepo.RepoSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } downloadMap := downloadsToMap(downloads) dwnld, ok := downloadMap[remoteName] if !ok { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } downloadLink := dwnld.Links["self"].Href - fmt.Printf("%s%s\n", aurora.Green(":: "), fmt.Sprintf("Downloading file from %s", downloadLink)) + logging.Success(fmt.Sprintf("Downloading file from %s", downloadLink)) req, err := http.NewRequest("GET", downloadLink, strings.NewReader("")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } req.SetBasicAuth(c.Username, c.Password) resp, err := http.DefaultClient.Do(req) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } defer resp.Body.Close() - fmt.Printf("%s%s\n", aurora.Green(":: "), "Downloaded!") - fmt.Printf("%s%s\n", aurora.Green(":: "), fmt.Sprintf("Saving file to %s", storagePath)) + logging.Success("Downloaded!") + logging.Success(fmt.Sprintf("Saving file to %s", storagePath)) out, err := os.Create(storagePath) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } defer out.Close() _, err = io.Copy(out, resp.Body) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } }, diff --git a/cmd/commands/downloads/list/list.go b/cmd/commands/downloads/list/list.go index 2544a13..b7b17b0 100644 --- a/cmd/commands/downloads/list/list.go +++ b/cmd/commands/downloads/list/list.go @@ -2,6 +2,7 @@ package list import ( "fmt" + "github.com/craftamap/bb/util/logging" "github.com/craftamap/bb/cmd/options" "github.com/dustin/go-humanize" @@ -28,14 +29,14 @@ func Add(downloadsCmd *cobra.Command, globalOpts *options.GlobalOptions) { if Web { err := browser.OpenURL(fmt.Sprintf("https://bitbucket.org/%s/%s/downloads", bbrepo.RepoOrga, bbrepo.RepoSlug)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } return } downloads, err := c.GetDownloads(bbrepo.RepoOrga, bbrepo.RepoSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } diff --git a/cmd/commands/downloads/upload/upload.go b/cmd/commands/downloads/upload/upload.go index 8f0720b..eb88bf7 100644 --- a/cmd/commands/downloads/upload/upload.go +++ b/cmd/commands/downloads/upload/upload.go @@ -2,11 +2,11 @@ package upload import ( "fmt" + "github.com/craftamap/bb/util/logging" "os" "path/filepath" "github.com/craftamap/bb/cmd/options" - "github.com/logrusorgru/aurora" "github.com/spf13/cobra" ) @@ -22,7 +22,7 @@ func Add(downloadsCmd *cobra.Command, globalOpts *options.GlobalOptions) { bbrepo := globalOpts.BitbucketRepo if len(args) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "No file specified") + logging.Warning("No file specified") return } @@ -30,23 +30,23 @@ func Add(downloadsCmd *cobra.Command, globalOpts *options.GlobalOptions) { fmt.Println(fpath) if _, err := os.Stat(fpath); os.IsNotExist(err) { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } - fmt.Printf("%s Uploading file %s\n", aurora.Green(":: "), filepath.Base(fpath)) + logging.Success(fmt.Sprintf("Uploading file %s", filepath.Base(fpath))) _, err := c.UploadDownload(bbrepo.RepoOrga, bbrepo.RepoSlug, fpath) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } //if err != nil { - // fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + // logging.Error(err) // return //} - fmt.Printf("%s Uploaded file %s\n", aurora.Green(":: "), filepath.Base(fpath)) + logging.Success(fmt.Sprintf("Uploaded file %s\n", filepath.Base(fpath))) }, } diff --git a/cmd/commands/pipelines/list/list.go b/cmd/commands/pipelines/list/list.go index 16e2330..5479a47 100644 --- a/cmd/commands/pipelines/list/list.go +++ b/cmd/commands/pipelines/list/list.go @@ -2,6 +2,7 @@ package list import ( "fmt" + "github.com/craftamap/bb/util/logging" "strings" "github.com/craftamap/bb/cmd/options" @@ -31,7 +32,7 @@ func Add(pipelinesCmd *cobra.Command, globalOpts *options.GlobalOptions) { pipelines, err := c.PipelineList(bbrepo.RepoOrga, bbrepo.RepoSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if len(*pipelines) == 0 { diff --git a/cmd/commands/pipelines/logs/logs.go b/cmd/commands/pipelines/logs/logs.go index b1c0a69..67744c9 100644 --- a/cmd/commands/pipelines/logs/logs.go +++ b/cmd/commands/pipelines/logs/logs.go @@ -2,6 +2,7 @@ package logs import ( "fmt" + "github.com/craftamap/bb/util/logging" "strconv" "strings" @@ -29,17 +30,17 @@ func Add(pipelinesCmd *cobra.Command, globalOpts *options.GlobalOptions) { } pipelineID, err := strconv.Atoi(strings.Replace(args[0], "#", "", 1)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } steps, err := c.PipelineStepsList(bbrepo.RepoOrga, bbrepo.RepoSlug, strconv.Itoa(pipelineID)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } for _, step := range *steps { - fmt.Println(aurora.Green("::"), aurora.Bold("step name:"), step.Name) + logging.Success(fmt.Sprint(aurora.Bold("step name:"), step.Name)) log, _ := c.PipelinesLogs(bbrepo.RepoOrga, bbrepo.RepoSlug, strconv.Itoa(pipelineID), step.UUID) fmt.Println(log) } diff --git a/cmd/commands/pipelines/view/view.go b/cmd/commands/pipelines/view/view.go index 102da47..f2b5b59 100644 --- a/cmd/commands/pipelines/view/view.go +++ b/cmd/commands/pipelines/view/view.go @@ -2,6 +2,7 @@ package view import ( "fmt" + "github.com/craftamap/bb/util/logging" "strconv" "strings" @@ -37,19 +38,19 @@ func Add(pipelinesCmd *cobra.Command, globalOpts *options.GlobalOptions) { } pipelineID, err := strconv.Atoi(strings.Replace(args[0], "#", "", 1)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } pipeline, err := c.PipelineGet(bbrepo.RepoOrga, bbrepo.RepoSlug, strconv.Itoa(pipelineID)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } steps, err := c.PipelineStepsList(bbrepo.RepoOrga, bbrepo.RepoSlug, strconv.Itoa(pipelineID)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } diff --git a/cmd/commands/pr/approve/approve.go b/cmd/commands/pr/approve/approve.go index 3f7afb4..6ca468c 100644 --- a/cmd/commands/pr/approve/approve.go +++ b/cmd/commands/pr/approve/approve.go @@ -2,12 +2,12 @@ package approve import ( "fmt" + "github.com/craftamap/bb/util/logging" "strconv" "strings" "github.com/cli/cli/git" "github.com/craftamap/bb/cmd/options" - "github.com/logrusorgru/aurora" "github.com/spf13/cobra" ) @@ -31,23 +31,23 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(args) > 0 { id, err = strconv.Atoi(strings.TrimPrefix(args[0], "#")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } } else { branchName, err := git.CurrentBranch() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } prs, err := c.GetPrIDBySourceBranch(bbrepo.RepoOrga, bbrepo.RepoSlug, branchName) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if len(prs.Values) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Nothing on this branch") + logging.Warning("Nothing on this branch") return } @@ -56,17 +56,17 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if !Unapprove { participant, err := c.PrApprove(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } - fmt.Println(aurora.Green(":: "), participant.State) + logging.Success(participant.State) } else { err := c.PrUnApprove(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil && !strings.Contains(err.Error(), "204") { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } - fmt.Println(aurora.Green(":: "), "unapproved") + logging.Success("unapproved") } }, } diff --git a/cmd/commands/pr/checkout/checkout.go b/cmd/commands/pr/checkout/checkout.go index 9729fb8..bb30c74 100644 --- a/cmd/commands/pr/checkout/checkout.go +++ b/cmd/commands/pr/checkout/checkout.go @@ -2,6 +2,7 @@ package checkout import ( "fmt" + "github.com/craftamap/bb/util/logging" "os" "os/exec" "strconv" @@ -11,7 +12,6 @@ import ( "github.com/cli/safeexec" "github.com/craftamap/bb/cmd/options" "github.com/craftamap/bb/internal/run" - "github.com/logrusorgru/aurora" "github.com/spf13/cobra" ) @@ -34,7 +34,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(args) > 0 { id, err = strconv.Atoi(strings.TrimPrefix(args[0], "#")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } } else { @@ -42,7 +42,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { } pr, err := c.PrView(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -65,14 +65,14 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { exe, err := safeexec.LookPath(args[0]) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } cmd := exec.Command(exe, args[1:]...) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr if err := run.PrepareCmd(cmd).Run(); err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } } diff --git a/cmd/commands/pr/comments/comments.go b/cmd/commands/pr/comments/comments.go index 35cbeae..4e816b4 100644 --- a/cmd/commands/pr/comments/comments.go +++ b/cmd/commands/pr/comments/comments.go @@ -2,6 +2,7 @@ package comments import ( "fmt" + "github.com/craftamap/bb/util/logging" "regexp" "sort" "strconv" @@ -38,23 +39,23 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(args) > 0 { id, err = strconv.Atoi(strings.TrimPrefix(args[0], "#")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } } else { branchName, err := git.CurrentBranch() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } prs, err := c.GetPrIDBySourceBranch(bbrepo.RepoOrga, bbrepo.RepoSlug, branchName) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if len(prs.Values) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Nothing on this branch") + logging.Warning("Nothing on this branch") return } @@ -62,7 +63,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { } comments, err := c.PrThreadedComments(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } diff --git a/cmd/commands/pr/create/create.go b/cmd/commands/pr/create/create.go index 62ade29..493cee2 100644 --- a/cmd/commands/pr/create/create.go +++ b/cmd/commands/pr/create/create.go @@ -3,6 +3,7 @@ package create import ( "fmt" "github.com/craftamap/bb/client" + "github.com/craftamap/bb/util/logging" "github.com/ktrysmt/go-bitbucket" "os" @@ -52,7 +53,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { ) sourceBranch, err := git.CurrentBranch() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -60,7 +61,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { // First, init default data repo, err := c.RepositoryGet(bbrepo.RepoOrga, bbrepo.RepoSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } targetBranch = repo.MainBranch.Name @@ -76,34 +77,34 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { head, err := bbgit.CurrentHead() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if _, err := c.GetCommit(bbrepo.RepoOrga, bbrepo.RepoSlug, head); err != nil { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Current commit is not available on bitbucket yet. If you create the pull request now, it won't contain the latest pushes.") + logging.Warning("Current commit is not available on bitbucket yet. If you create the pull request now, it won't contain the latest pushes.") } if ucc, err := git.UncommittedChangeCount(); err == nil && ucc > 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), utils.Pluralize(ucc, "uncommitted change")) + logging.Warning(utils.Pluralize(ucc, "uncommitted change")) } title, body, err = c.PrDefaultTitleAndBody(bbrepo.RepoOrga, bbrepo.RepoSlug, sourceBranch, targetBranch) defaultBody = body if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } defaultReviewers, err := c.GetDefaultReviewers(bbrepo.RepoOrga, bbrepo.RepoSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } currentUser, err := c.GetCurrentUser() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Can't get the current user - this means that the default reviewers won't be added to this pull request. Make sure to grant the account-scope for your access token") + logging.Warning("Can't get the current user - this means that the default reviewers won't be added to this pull request. Make sure to grant the account-scope for your access token") } else { for _, rev := range defaultReviewers.Values { if currentUser.Uuid != rev.UUID { @@ -117,14 +118,14 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { // Then, check if a pr is already existing. If force is True, take that data possiblePrs, err := c.GetPrIDBySourceBranch(bbrepo.RepoOrga, bbrepo.RepoSlug, sourceBranch) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if !Force { if len(possiblePrs.Values) != 0 { id := possiblePrs.Values[0].ID - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), fmt.Sprintf("Pull request %d already exists for this branch. Use --force to ignore this.", id)) + logging.Warning(fmt.Sprintf("Pull request %d already exists for this branch. Use --force to ignore this.", id)) return } } else { @@ -170,11 +171,11 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { err = survey.AskOne(questionTitle, &title) } if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } - fmt.Println(aurora.Bold(aurora.Green("!").String() + " Body:")) + logging.SuccessExclamation("Body:") out, _ := glamour.Render(body, "dark") fmt.Print(out) @@ -210,7 +211,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { var doNext string err = survey.AskOne(selectNext, &doNext) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -310,7 +311,7 @@ func changeDestinationBranch(bbrepo *bbgit.BitbucketRepo, c *client.Client, targ _, tempBody, err := c.PrDefaultTitleAndBody(bbrepo.RepoOrga, bbrepo.RepoSlug, sourceBranch, targetBranch) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return "", err } if body == defaultBody { @@ -321,7 +322,7 @@ func changeDestinationBranch(bbrepo *bbgit.BitbucketRepo, c *client.Client, targ func manageReviewers(bbrepo *bbgit.BitbucketRepo, c *client.Client, currentUser *bitbucket.User, reviewers []string) ([]string, error) { if currentUser == nil { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Can't get the current user - this means that reviewers can't be managed on this pull request. Make sure to grant the account-scope for your access token.") + logging.Warning("Can't get the current user - this means that reviewers can't be managed on this pull request. Make sure to grant the account-scope for your access token.") } for { fmt.Println("Reviewers:") @@ -360,7 +361,7 @@ func manageReviewers(bbrepo *bbgit.BitbucketRepo, c *client.Client, currentUser nameToUUID[name] = rev } if len(listOfNames) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "No reviwers to remove available") + logging.Warning("No reviwers to remove available") continue } var removedReviewers []string @@ -384,7 +385,7 @@ func manageReviewers(bbrepo *bbgit.BitbucketRepo, c *client.Client, currentUser members, err := c.GetWorkspaceMembers(bbrepo.RepoOrga) if err != nil { - fmt.Printf("%s%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Could not get workspace members - create the pr without reviewers and add them manually using the browser", err) + logging.Warning(fmt.Sprint("Could not get workspace members - create the pr without reviewers and add them manually using the browser", err)) continue } var nonReviewersMembers []string @@ -402,7 +403,7 @@ func manageReviewers(bbrepo *bbgit.BitbucketRepo, c *client.Client, currentUser nameToUUID[name] = rev } if len(listOfNames) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "No reviwers to add available") + logging.Warning("No reviwers to add available") continue } var addedReviewers []string @@ -412,7 +413,7 @@ func manageReviewers(bbrepo *bbgit.BitbucketRepo, c *client.Client, currentUser PageSize: 20, }, &addedReviewers) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return nil, err } for _, addedReviewer := range addedReviewers { diff --git a/cmd/commands/pr/diff/diff.go b/cmd/commands/pr/diff/diff.go index e428318..2eb6014 100644 --- a/cmd/commands/pr/diff/diff.go +++ b/cmd/commands/pr/diff/diff.go @@ -3,12 +3,12 @@ package diff import ( "bufio" "fmt" + "github.com/craftamap/bb/util/logging" "strconv" "strings" "github.com/cli/cli/git" "github.com/craftamap/bb/cmd/options" - "github.com/logrusorgru/aurora" "github.com/spf13/cobra" ) @@ -31,23 +31,23 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(args) > 0 { id, err = strconv.Atoi(strings.TrimPrefix(args[0], "#")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } } else { branchName, err := git.CurrentBranch() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } prs, err := c.GetPrIDBySourceBranch(bbrepo.RepoOrga, bbrepo.RepoSlug, branchName) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if len(prs.Values) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Nothing on this branch") + logging.Warning("Nothing on this branch") return } @@ -55,13 +55,13 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { } repo, err := c.PrView(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } diff, err := c.DiffGet(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%s..%s", repo.Source.Commit.Hash, repo.Destination.Commit.Hash)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } diff --git a/cmd/commands/pr/list/list.go b/cmd/commands/pr/list/list.go index 10189dd..d134233 100644 --- a/cmd/commands/pr/list/list.go +++ b/cmd/commands/pr/list/list.go @@ -2,6 +2,7 @@ package list import ( "fmt" + "github.com/craftamap/bb/util/logging" "strings" "github.com/craftamap/bb/cmd/options" @@ -32,14 +33,14 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if Web { repo, err := c.RepositoryGet(bbrepo.RepoOrga, bbrepo.RepoSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) } linkWrapper := repo.Links["Html"].(*bitbucket.SubjectTypesRepositoryEvents) link := linkWrapper.Href + "/pull-requests" err = browser.OpenURL(link) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -50,7 +51,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { prs, err := c.PrList(bbrepo.RepoOrga, bbrepo.RepoSlug, []string{state}) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) } fmt.Println() diff --git a/cmd/commands/pr/merge/merge.go b/cmd/commands/pr/merge/merge.go index d7cc9c2..fd1c892 100644 --- a/cmd/commands/pr/merge/merge.go +++ b/cmd/commands/pr/merge/merge.go @@ -2,13 +2,13 @@ package merge import ( "fmt" + "github.com/craftamap/bb/util/logging" "strconv" "strings" "github.com/cli/cli/git" "github.com/craftamap/bb/cmd/commands/pr/view" "github.com/craftamap/bb/cmd/options" - "github.com/logrusorgru/aurora" "github.com/spf13/cobra" ) @@ -31,23 +31,23 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(args) > 0 { id, err = strconv.Atoi(strings.TrimPrefix(args[0], "#")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } } else { branchName, err := git.CurrentBranch() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } prs, err := c.GetPrIDBySourceBranch(bbrepo.RepoOrga, bbrepo.RepoSlug, branchName) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if len(prs.Values) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Nothing on this branch") + logging.Warning("Nothing on this branch") return } @@ -55,13 +55,13 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { } pr, err := c.PrMerge(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } commits, err := c.PrCommits(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } view.PrintSummary(pr, commits) diff --git a/cmd/commands/pr/requestchanges/requestchanges.go b/cmd/commands/pr/requestchanges/requestchanges.go index 8117efc..83a8dfa 100644 --- a/cmd/commands/pr/requestchanges/requestchanges.go +++ b/cmd/commands/pr/requestchanges/requestchanges.go @@ -2,12 +2,12 @@ package requestchanges import ( "fmt" + "github.com/craftamap/bb/util/logging" "strconv" "strings" "github.com/cli/cli/git" "github.com/craftamap/bb/cmd/options" - "github.com/logrusorgru/aurora" "github.com/spf13/cobra" ) @@ -31,23 +31,23 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(args) > 0 { id, err = strconv.Atoi(strings.TrimPrefix(args[0], "#")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } } else { branchName, err := git.CurrentBranch() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } prs, err := c.GetPrIDBySourceBranch(bbrepo.RepoOrga, bbrepo.RepoSlug, branchName) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if len(prs.Values) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Nothing on this branch") + logging.Warning("Nothing on this branch") return } @@ -56,17 +56,17 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if !UnRequest { participant, err := c.PrRequestChanges(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } - fmt.Println(aurora.Green(":: "), participant.State) + logging.Success(participant.State) } else { err := c.PrUnRequestChanges(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil && !strings.Contains(err.Error(), "204") { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } - fmt.Println(aurora.Green(":: "), "unrequested") + logging.Success("unrequested") } }, } diff --git a/cmd/commands/pr/statuses/statuses.go b/cmd/commands/pr/statuses/statuses.go index 87392ca..aa9b6df 100644 --- a/cmd/commands/pr/statuses/statuses.go +++ b/cmd/commands/pr/statuses/statuses.go @@ -2,6 +2,7 @@ package statuses import ( "fmt" + "github.com/craftamap/bb/util/logging" "strconv" "strings" @@ -37,23 +38,23 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(args) > 0 { id, err = strconv.Atoi(strings.TrimPrefix(args[0], "#")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } } else { branchName, err := git.CurrentBranch() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } prs, err := c.GetPrIDBySourceBranch(bbrepo.RepoOrga, bbrepo.RepoSlug, branchName) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if len(prs.Values) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Nothing on this branch") + logging.Warning("Nothing on this branch") return } @@ -61,7 +62,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { } statuses, err := c.PrStatuses(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } diff --git a/cmd/commands/pr/view/view.go b/cmd/commands/pr/view/view.go index 8d82c6b..64bb247 100644 --- a/cmd/commands/pr/view/view.go +++ b/cmd/commands/pr/view/view.go @@ -2,6 +2,7 @@ package view import ( "fmt" + "github.com/craftamap/bb/util/logging" "strconv" "strings" @@ -37,23 +38,23 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(args) > 0 { id, err = strconv.Atoi(strings.TrimPrefix(args[0], "#")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } } else { branchName, err := git.CurrentBranch() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } prs, err := c.GetPrIDBySourceBranch(bbrepo.RepoOrga, bbrepo.RepoSlug, branchName) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if len(prs.Values) == 0 { - fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), "Nothing on this branch") + logging.Warning("Nothing on this branch") return } id = prs.Values[0].ID @@ -61,13 +62,13 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { pr, err := c.PrView(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if Web { err := browser.OpenURL(pr.Links["html"].Href) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } return @@ -75,7 +76,7 @@ func Add(prCmd *cobra.Command, globalOpts *options.GlobalOptions) { commits, err := c.PrCommits(bbrepo.RepoOrga, bbrepo.RepoSlug, fmt.Sprintf("%d", id)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -108,7 +109,7 @@ func PrintSummary(pr *client.PullRequest, commits *client.Commits) { if pr.Description != "" { out, err := glamour.Render(pr.Description, "dark") if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } fmt.Println(out) diff --git a/cmd/commands/repo/clone/clone.go b/cmd/commands/repo/clone/clone.go index e5bc0af..b1751be 100644 --- a/cmd/commands/repo/clone/clone.go +++ b/cmd/commands/repo/clone/clone.go @@ -2,6 +2,7 @@ package clone import ( "fmt" + "github.com/craftamap/bb/util/logging" "strings" "github.com/AlecAivazis/survey/v2" @@ -29,7 +30,7 @@ func Add(repoCmd *cobra.Command, globalOpts *options.GlobalOptions) { Options: []string{"ssh", "https"}, }, &gitProtocol) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } viper.Set("git_protocol", gitProtocol) @@ -39,7 +40,7 @@ func Add(repoCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(args) == 0 { workspaces, err := c.GetWorkspaces() if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } // fmt.Println(workspaces) @@ -54,13 +55,13 @@ func Add(repoCmd *cobra.Command, globalOpts *options.GlobalOptions) { Options: workspaceSlugs, }, &workspaceSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } // fmt.Println(workspaceSlug) repos, err := c.RepositoriesForWorkspace(workspaceSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } repoSlugs := []string{} @@ -73,7 +74,7 @@ func Add(repoCmd *cobra.Command, globalOpts *options.GlobalOptions) { Options: repoSlugs, }, &repoOrgaSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -81,7 +82,7 @@ func Add(repoCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(splitted) == 2 { _, err := c.RepositoryGet(splitted[0], splitted[1]) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -93,7 +94,7 @@ func Add(repoCmd *cobra.Command, globalOpts *options.GlobalOptions) { if len(splitted) == 2 { _, err := c.RepositoryGet(splitted[0], splitted[1]) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } diff --git a/cmd/commands/repo/view/view.go b/cmd/commands/repo/view/view.go index ea77198..a24ce52 100644 --- a/cmd/commands/repo/view/view.go +++ b/cmd/commands/repo/view/view.go @@ -2,6 +2,7 @@ package view import ( "fmt" + "github.com/craftamap/bb/util/logging" "github.com/charmbracelet/glamour" "github.com/craftamap/bb/cmd/options" @@ -31,13 +32,13 @@ func Add(repoCmd *cobra.Command, globalOpts *options.GlobalOptions) { repo, err := c.RepositoryGet(bbrepo.RepoOrga, bbrepo.RepoSlug) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } if Web { err := browser.OpenURL(repo.Links["html"].(map[string]interface{})["href"].(string)) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } return @@ -45,7 +46,7 @@ func Add(repoCmd *cobra.Command, globalOpts *options.GlobalOptions) { readme, err := c.GetReadmeContent(bbrepo.RepoOrga, bbrepo.RepoSlug, repo.MainBranch.Name) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } @@ -66,7 +67,7 @@ func PrintSummary(repo *client.Repository, readme string) { if readme != "" { out, err := glamour.Render(readme, "dark") if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } fmt.Println(out) diff --git a/cmd/root.go b/cmd/root.go index c49a83f..7f938e9 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "github.com/craftamap/bb/util/logging" "os" "path/filepath" @@ -33,7 +34,7 @@ var ( if _, ok := cmd.Annotations["RequiresRepository"]; ok { bbrepo, err := bbgit.GetBitbucketRepo(remoteName) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) os.Exit(1) } if !bbrepo.IsBitbucketOrg() { @@ -83,12 +84,12 @@ func init() { err := viper.BindPFlag("username", rootCmd.PersistentFlags().Lookup("username")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } err = viper.BindPFlag("password", rootCmd.PersistentFlags().Lookup("password")) if err != nil { - fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), err) + logging.Error(err) return } diff --git a/go.mod b/go.mod index 8e7f500..2e89839 100644 --- a/go.mod +++ b/go.mod @@ -4,28 +4,20 @@ go 1.15 require ( github.com/AlecAivazis/survey/v2 v2.1.1 - github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 // indirect github.com/charmbracelet/glamour v0.2.1-0.20200724174618-1246d13c1684 github.com/cli/cli v1.3.0 github.com/cli/safeexec v1.0.0 - github.com/coreos/etcd v3.3.13+incompatible github.com/dustin/go-humanize v1.0.0 github.com/kirsle/configdir v0.0.0-20170128060238-e45d2f54772f github.com/ktrysmt/go-bitbucket v0.9.2 github.com/kyokomi/emoji v2.2.4+incompatible github.com/logrusorgru/aurora v2.0.3+incompatible - github.com/logrusorgru/aurora/v3 v3.0.0 // indirect github.com/mitchellh/mapstructure v1.3.3 github.com/muesli/reflow v0.1.0 - github.com/pborman/ansi v1.0.0 github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4 - github.com/spance/go-callprivate v0.0.0-20151213012958-d8b9b5523668 // indirect github.com/spf13/cobra v1.1.1 github.com/spf13/viper v1.7.0 - github.com/thoas/go-funk v0.7.0 // indirect github.com/tidwall/pretty v1.0.2 - github.com/ugorji/go v1.1.4 // indirect github.com/wbrefvem/go-bitbucket v0.0.0-20190128183802-fc08fd046abb - github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 // indirect gopkg.in/yaml.v2 v2.3.0 // indirect ) diff --git a/go.sum b/go.sum index 5123dd2..34b97dd 100644 --- a/go.sum +++ b/go.sum @@ -11,24 +11,27 @@ cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqCl cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/AlecAivazis/survey v1.8.8 h1:Y4yypp763E8cbqb5RBqZhGgkCFLRFnbRBHrxnpMMsgQ= github.com/AlecAivazis/survey/v2 v2.1.1 h1:LEMbHE0pLj75faaVEKClEX1TM4AJmmnOh9eimREzLWI= github.com/AlecAivazis/survey/v2 v2.1.1/go.mod h1:9FJRdMdDm8rnT+zHVbvQT2RTSTLq0Ttd6q3Vl2fahjk= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8 h1:xzYJEypr/85nBpB11F9br+3HUrpgb+fcm5iADzXXYEw= github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8/go.mod h1:oX5x61PbNXchhh0oikYAH+4Pcfw5LKv21+Jnpr6r6Pc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm+0dGI2AIUHY+w0BUc+4tn40djz7+6U= github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI= github.com/alecthomas/chroma v0.7.3 h1:NfdAERMy+esYQs8OXk0I868/qDxxCEo7FMz1WIqMAeI= github.com/alecthomas/chroma v0.7.3/go.mod h1:sko8vR34/90zvl5QdcUdvzL3J8NKjAUx9va9jPuFNoM= +github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo= github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0= github.com/alecthomas/kong v0.2.4/go.mod h1:kQOmtJgV+Lb4aj+I2LEn40cbtawdWJ9Y8QLq+lElKxE= +github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897 h1:p9Sln00KOTlrYkxI1zYWl1QLnEqAqEARBEYa8FQnQcY= github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -38,22 +41,16 @@ github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJm github.com/briandowns/spinner v1.11.1 h1:OixPqDEcX3juo5AjQZAnFPbeUA0jvkp2qzB5gOZJ/L0= github.com/briandowns/spinner v1.11.1/go.mod h1:QOuQk7x+EaDASo80FEXwlwiA+j/PPIcX3FScO+3/ZPQ= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/charmbracelet/glamour v0.2.0 h1:mTgaiNiumpqTZp3qVM6DH9UB0NlbY17wejoMf1kM8Pg= -github.com/charmbracelet/glamour v0.2.0/go.mod h1:UA27Kwj3QHialP74iU6C+Gpc8Y7IOAKupeKMLLBURWM= github.com/charmbracelet/glamour v0.2.1-0.20200724174618-1246d13c1684 h1:YMyvXRstOQc7n6eneHfudVMbARSCmZ7EZGjtTkkeB3A= github.com/charmbracelet/glamour v0.2.1-0.20200724174618-1246d13c1684/go.mod h1:UA27Kwj3QHialP74iU6C+Gpc8Y7IOAKupeKMLLBURWM= -github.com/cli/cli v1.1.0 h1:Ynfk6q+1ozX/3YhY5J4QMf9J6rekO7rDpwYgc2DtEkc= -github.com/cli/cli v1.1.0/go.mod h1:9W9naQhz5tAJCqlvkp962EQE7jiEUuRW83oqk71yYsc= github.com/cli/cli v1.3.0 h1:wLrjwtaRCWgpjQ6Iorm6Vux9+yLH1DPxaJYdYhfRSt0= github.com/cli/cli v1.3.0/go.mod h1:O+aEd7JTaciPdbHznT5h+edEwf8u638haQ4d8++kIec= github.com/cli/safeexec v1.0.0 h1:0VngyaIyqACHdcMNWfo6+KdUYnqEr2Sg+bSP1pdF+dI= github.com/cli/safeexec v1.0.0/go.mod h1:Z/D4tTN8Vs5gXYHDCbaM1S/anmEDnJb1iW0+EJ5zx3Q= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= @@ -61,6 +58,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= @@ -106,8 +104,8 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaU github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= @@ -135,14 +133,17 @@ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0m github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/henvic/httpretty v0.0.6/go.mod h1:X38wLjWXHkXT7r2+uK8LjCMne9rsuNaBLJ+5cU2/Pmo= +github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/k0kubun/pp v2.3.0+incompatible h1:EKhKbi34VQDWJtq+zpsKSEhkHHs9w2P8Izbq8IhLVSo= github.com/k0kubun/pp v2.3.0+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3tgzSScAn6HmfYukg= @@ -154,32 +155,21 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.4 h1:5Myjjh3JY/NaAi4IsUbHADytDyl1VE1Y9PXDlL+P/VQ= github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/ktrysmt/go-bitbucket v0.6.4 h1:C8dUGp0qkwncKtAnozHCbbqhptefzEd1I0sfnuy9rYQ= -github.com/ktrysmt/go-bitbucket v0.6.4/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4= -github.com/ktrysmt/go-bitbucket v0.6.5 h1:+M4oFRZbzKH+Jt/eY3rKDPwyA5uvjY0KSJQwePGvvzQ= -github.com/ktrysmt/go-bitbucket v0.6.5/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4= -github.com/ktrysmt/go-bitbucket v0.6.6 h1:78sCjU8xMUvNGIBCRLSrNAjtbCk6ayVSwEr9n5LLp0U= -github.com/ktrysmt/go-bitbucket v0.6.6/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4= -github.com/ktrysmt/go-bitbucket v0.8.0 h1:KwJcRTtGhiHezFQgdFrMOV/r9rVyuFk/KYZftgb1TIg= -github.com/ktrysmt/go-bitbucket v0.8.0/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4= -github.com/ktrysmt/go-bitbucket v0.9.0 h1:T/8UBpQZ67atGa3hnESlWidQ0n9MpsqfKxPNe4sCOMQ= -github.com/ktrysmt/go-bitbucket v0.9.0/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4= github.com/ktrysmt/go-bitbucket v0.9.2 h1:HpfQEGPqyvdxYamryObQHm82okwVi1iDTDETVZxBAJE= github.com/ktrysmt/go-bitbucket v0.9.2/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4= -github.com/kyokomi/emoji v1.5.1 h1:qp9dub1mW7C4MlvoRENH6EAENb9skEFOvIEbp1Waj38= github.com/kyokomi/emoji v2.2.4+incompatible h1:np0woGKwx9LiHAQmwZx79Oc0rHpNw3o+3evou4BEPv4= github.com/kyokomi/emoji v2.2.4+incompatible/go.mod h1:mZ6aGCD7yk8j6QY6KICwnZ2pxoszVseX1DNoGtU2tBA= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= -github.com/logrusorgru/aurora/v3 v3.0.0 h1:R6zcoZZbvVcGMvDCKo45A9U/lzYyzl5NfYIvznmDfE4= -github.com/logrusorgru/aurora/v3 v3.0.0/go.mod h1:vsR12bk5grlLvLXAYrBsb5Oc/N+LxAlxggSjiwMnCUc= github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= @@ -187,8 +177,6 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.7 h1:bQGKb3vps/j0E9GfJQ03JyhRuxsvdAanXlT9BTw3mdw= -github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI= @@ -226,8 +214,6 @@ github.com/muesli/reflow v0.1.0 h1:oQdpLfO56lr5pgLvqD0TcjW85rDjSYSBVdiG1Ch1ddM= github.com/muesli/reflow v0.1.0/go.mod h1:I9bWAt7QTg/que/qmUCJBGlj7wEq8OAFBjPNjc6xK4I= github.com/muesli/termenv v0.6.0 h1:zxvzTBmo4ZcxhNGGWeMz+Tttm51eF5bmPjfy4MCRYlk= github.com/muesli/termenv v0.6.0/go.mod h1:SohX91w6swWA4AYU+QmPx+aSgXhWO0juiyID9UZmbpA= -github.com/muesli/termenv v0.7.2 h1:r1raklL3uKE7rOvWgSenmEm2px+dnc33OTisZ8YR1fw= -github.com/muesli/termenv v0.7.2/go.mod h1:ct2L5N2lmix82RaY3bMWwVu/jUFc9Ule0KGDCiKYPh8= github.com/muesli/termenv v0.7.4 h1:/pBqvU5CpkY53tU0vVn+xgs2ZTX63aH5nY+SSps5Xa8= github.com/muesli/termenv v0.7.4/go.mod h1:pZ7qY9l3F7e5xsAOS0zCew2tME+p7bWeBkotCEcIIcc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -235,8 +221,6 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn+Ejf/w8= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/ansi v1.0.0 h1:OqjHMhvlSuCCV5JT07yqPuJPQzQl+WXsiZ14gZsqOrQ= -github.com/pborman/ansi v1.0.0/go.mod h1:SgWzwMAx1X/Ez7i90VqF8LRiQtx52pWDiQP+x3iGnzw= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4 h1:49lOXmGaUpV9Fz3gd7TFZY106KVlPVa5jcYD1gaQf98= @@ -244,6 +228,7 @@ github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -262,25 +247,22 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/githubv4 v0.0.0-20200802174311-f27d2ca7f6d5/go.mod h1:hAF0iLZy4td2EX+/8Tw+4nodhlMrwN3HupfaXj3zkGo= github.com/shurcooL/githubv4 v0.0.0-20200928013246-d292edc3691b/go.mod h1:hAF0iLZy4td2EX+/8Tw+4nodhlMrwN3HupfaXj3zkGo= github.com/shurcooL/graphql v0.0.0-20181231061246-d48a9a75455f/go.mod h1:AuYgA5Kyo4c7HfUmvRGs/6rGlMMV/6B1bVnB9JxJEEg= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spance/go-callprivate v0.0.0-20151213012958-d8b9b5523668 h1:wSXAJdKyzJNaIvTDkThQd13R+3DiVKttdi1iOUa/6xw= -github.com/spance/go-callprivate v0.0.0-20151213012958-d8b9b5523668/go.mod h1:YAHXixP6/M2dnkeoKo4MG9cK8i7OjSn0AFS0SmcBgFA= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.1.0 h1:aq3wCKjTPmzcNWLVGnsFVN4rflK7Uzn10F8/aw8MhdQ= -github.com/spf13/cobra v1.1.0/go.mod h1:yk5b0mALVusDL5fMM6Rd1wgnoO5jUPhwsQ6LQAJTidQ= github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= @@ -288,7 +270,6 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6 github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -296,20 +277,16 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/thoas/go-funk v0.7.0 h1:GmirKrs6j6zJbhJIficOsz2aAI7700KsU/5YrdHRM1Y= -github.com/thoas/go-funk v0.7.0/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q= github.com/tidwall/pretty v1.0.2 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU= github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/wbrefvem/go-bitbucket v0.0.0-20190128183802-fc08fd046abb h1:KrmaSo+FHWBt1H652w/uerwzKvQqh4H7Jgyxm4hz2BQ= github.com/wbrefvem/go-bitbucket v0.0.0-20190128183802-fc08fd046abb/go.mod h1:Z91j2jYBApRjJ0zlXDCxPrrZR8ohkkd4g0n+Hqs1w0Q= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.2.0 h1:WOOcyaJPlzb8fZ8TloxFe8QZkhOOJx87leDa9MIT9dc= github.com/yuin/goldmark v1.2.0/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -325,8 +302,6 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 h1:58fnuSXlxZmFdJyvtTFVmVhcMLU6v5fEb/ok4wyqtNU= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 h1:pLI5jrR7OSLijeIDcmRxNmw2api+jEfxLoykJVice/E= golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -360,7 +335,6 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -400,8 +374,6 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -447,10 +419,10 @@ google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBr google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= @@ -458,12 +430,12 @@ gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/util/logging/logging.go b/util/logging/logging.go new file mode 100644 index 0000000..bcf84ad --- /dev/null +++ b/util/logging/logging.go @@ -0,0 +1,26 @@ +package logging + +import ( + "fmt" + "github.com/logrusorgru/aurora" +) + +func Error(message ...interface{}) { + fmt.Printf("%s%s%s\n", aurora.Red(":: "), aurora.Bold("An error occurred: "), message) +} + +func Warning(message ...interface{}) { + fmt.Printf("%s%s%s\n", aurora.Yellow(":: "), aurora.Bold("Warning: "), fmt.Sprint(message...)) +} + +func Note(message ...interface{}) { + fmt.Printf("%s%s%s\n", aurora.Magenta(":: "), aurora.Bold("Note: "), fmt.Sprint(message...)) +} + +func Success(message ...interface{}) { + fmt.Printf("%s%s\n", aurora.Green(":: "), fmt.Sprint(message...)) +} + +func SuccessExclamation(message ...interface{}) { + fmt.Printf("%s%s", aurora.Bold(aurora.Green("! ")), aurora.Bold(fmt.Sprint(message...))) +} \ No newline at end of file