summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-10-18 21:10:40 +0300
committerPaul Buetow <paul@buetow.org>2024-10-18 21:10:40 +0300
commit84b404e392c94174d1c5ae4feb8afc4f5d334346 (patch)
tree19237b127ef441e820dfd98bb4d0725736614093
parent170a30c7cce4dbe78a20d6379998dcfc41a5c524 (diff)
added prompt colors
-rw-r--r--go.mod7
-rw-r--r--go.sum13
-rw-r--r--internal/platforms/linkedin/linkedin.go2
-rw-r--r--internal/platforms/mastodon/mastodon.go2
-rw-r--r--internal/prompt/prompt.go12
5 files changed, 33 insertions, 3 deletions
diff --git a/go.mod b/go.mod
index 1d44043..563eb4f 100644
--- a/go.mod
+++ b/go.mod
@@ -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
+)
diff --git a/go.sum b/go.sum
index 603da79..9f05b15 100644
--- a/go.sum
+++ b/go.sum
@@ -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)