diff options
| author | Paul Buetow <paul@buetow.org> | 2024-10-18 21:10:40 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-10-18 21:10:40 +0300 |
| commit | 84b404e392c94174d1c5ae4feb8afc4f5d334346 (patch) | |
| tree | 19237b127ef441e820dfd98bb4d0725736614093 | |
| parent | 170a30c7cce4dbe78a20d6379998dcfc41a5c524 (diff) | |
added prompt colors
| -rw-r--r-- | go.mod | 7 | ||||
| -rw-r--r-- | go.sum | 13 | ||||
| -rw-r--r-- | internal/platforms/linkedin/linkedin.go | 2 | ||||
| -rw-r--r-- | internal/platforms/mastodon/mastodon.go | 2 | ||||
| -rw-r--r-- | internal/prompt/prompt.go | 12 |
5 files changed, 33 insertions, 3 deletions
@@ -6,3 +6,10 @@ require ( golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561 golang.org/x/oauth2 v0.23.0 ) + +require ( + github.com/fatih/color v1.17.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + golang.org/x/sys v0.18.0 // indirect +) @@ -1,6 +1,19 @@ +github.com/TwiN/go-color v1.4.1 h1:mqG0P/KBgHKVqmtL5ye7K0/Gr4l6hTksPgTgMk3mUzc= +github.com/TwiN/go-color v1.4.1/go.mod h1:WcPf/jtiW95WBIsEeY1Lc/b8aaWoiqQpu5cf8WFxu+s= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561 h1:MDc5xs78ZrZr3HMQugiXOAkSZtfTpbJLDr/lwfgO53E= golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/internal/platforms/linkedin/linkedin.go b/internal/platforms/linkedin/linkedin.go index 0f5673e..4be231c 100644 --- a/internal/platforms/linkedin/linkedin.go +++ b/internal/platforms/linkedin/linkedin.go @@ -64,7 +64,7 @@ func callLinkedInAPI(ctx context.Context, personID, accessToken, message string) if err != nil { return fmt.Errorf("Error encoding JSON:%w", err) } - if !prompt.Yes(fmt.Sprintf("%s\nDo you want to post this message to LinkedIn?", string(payload))) { + if !prompt.YesWithContent("Do you want to post this message to LinkedIn?", message) { return prompt.ErrAborted } diff --git a/internal/platforms/mastodon/mastodon.go b/internal/platforms/mastodon/mastodon.go index c5d5c35..2cb280f 100644 --- a/internal/platforms/mastodon/mastodon.go +++ b/internal/platforms/mastodon/mastodon.go @@ -27,7 +27,7 @@ func Post(ctx context.Context, args config.Args, sizeLimit int, ent entry.Entry) log.Println("Not posting", ent, "to Mastodon as dry-run enabled") return nil } - if !prompt.Yes(fmt.Sprintf("%s\nDo you want to post this message to Mastodon?", string(payloadBytes))) { + if !prompt.YesWithContent("Do you want to post this message to Mastodon?", content) { return prompt.ErrAborted } diff --git a/internal/prompt/prompt.go b/internal/prompt/prompt.go index 0afe98e..9feff70 100644 --- a/internal/prompt/prompt.go +++ b/internal/prompt/prompt.go @@ -6,15 +6,25 @@ import ( "fmt" "os" "strings" + + "github.com/fatih/color" ) var ErrAborted = errors.New("aborted") +var contentSprintf = color.New(color.FgCyan, color.BgBlue, color.Bold).SprintFunc() +var dangerSprintf = color.New(color.FgWhite, color.BgRed, color.Bold).SprintFunc() + +func YesWithContent(question, content string) bool { + fmt.Print(contentSprintf(content)) + fmt.Print("\n") + return Yes(question) +} func Yes(question string) bool { reader := bufio.NewReader(os.Stdin) for { - fmt.Print(question, " (y/n): ") + fmt.Printf("%s ", dangerSprintf(fmt.Sprintf("%s (y/n):", question))) input, err := reader.ReadString('\n') if err != nil { fmt.Println("Error reading input:", err) |
