Skip to content

Commit 5dd5a7c

Browse files
committed
bunker: better colors and prompts.
1 parent 347a82e commit 5dd5a7c

File tree

4 files changed

+35
-34
lines changed

4 files changed

+35
-34
lines changed

Diff for: bunker.go

+30-24
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"net/url"
77
"os"
88

9-
"github.com/manifoldco/promptui"
9+
"github.com/fatih/color"
1010
"github.com/nbd-wtf/go-nostr"
1111
"github.com/nbd-wtf/go-nostr/nip19"
1212
"github.com/nbd-wtf/go-nostr/nip46"
@@ -65,12 +65,12 @@ var bunker = &cli.Command{
6565
return err
6666
}
6767
npub, _ := nip19.EncodePublicKey(pubkey)
68-
log("listening at %s%v%s:\n %spubkey:%s %s\n %snpub:%s %s\n %sconnection code:%s %s\n %sbunker:%s %s\n\n",
69-
BOLD_ON, relayURLs, BOLD_OFF,
70-
BOLD_ON, BOLD_OFF, pubkey,
71-
BOLD_ON, BOLD_OFF, npub,
72-
BOLD_ON, BOLD_OFF, fmt.Sprintf("%s#secret?%s", npub, qs.Encode()),
73-
BOLD_ON, BOLD_OFF, fmt.Sprintf("bunker://%s?%s", pubkey, qs.Encode()),
68+
bold := color.New(color.Bold).Sprint
69+
log("listening at %v:\n pubkey: %s \n npub: %s\n bunker: %s\n\n",
70+
bold(relayURLs),
71+
bold(pubkey),
72+
bold(npub),
73+
bold(fmt.Sprintf("bunker://%s?%s", pubkey, qs.Encode())),
7474
)
7575

7676
alwaysYes := c.Bool("yes")
@@ -93,15 +93,19 @@ var bunker = &cli.Command{
9393
}
9494

9595
jreq, _ := json.MarshalIndent(req, " ", " ")
96-
log("- got request from '%s': %s\n", ie.Event.PubKey, string(jreq))
96+
log("- got request from '%s': %s\n", color.New(color.Bold, color.FgBlue).Sprint(ie.Event.PubKey), string(jreq))
9797
jresp, _ := json.MarshalIndent(resp, " ", " ")
9898
log("~ responding with %s\n", string(jresp))
9999

100100
if alwaysYes || harmless || askProceed(ie.Event.PubKey) {
101-
if err := ie.Relay.Publish(c.Context, eventResponse); err == nil {
102-
log("* sent response!\n")
103-
} else {
104-
log("* failed to send response: %s\n", err)
101+
for _, relayURL := range relayURLs {
102+
if relay, _ := pool.EnsureRelay(relayURL); relay != nil {
103+
if err := relay.Publish(c.Context, eventResponse); err == nil {
104+
log("* sent response through %s\n", relay.URL)
105+
} else {
106+
log("* failed to send response: %s\n", err)
107+
}
108+
}
105109
}
106110
}
107111
}
@@ -117,21 +121,23 @@ func askProceed(source string) bool {
117121
return true
118122
}
119123

120-
prompt := promptui.Select{
121-
Label: "proceed?",
122-
Items: []string{
123-
"no",
124-
"yes",
125-
"always from this source",
126-
},
124+
fmt.Fprintf(os.Stderr, "request from %s:\n", color.New(color.Bold, color.FgBlue).Sprint(source))
125+
res, err := ask(" proceed to fulfill this request? (yes/no/always from this) (y/n/a): ", "",
126+
func(answer string) bool {
127+
if answer != "y" && answer != "n" && answer != "a" {
128+
return true
129+
}
130+
return false
131+
})
132+
if err != nil {
133+
return false
127134
}
128-
n, _, _ := prompt.Run()
129-
switch n {
130-
case 0:
135+
switch res {
136+
case "n":
131137
return false
132-
case 1:
138+
case "y":
133139
return true
134-
case 2:
140+
case "a":
135141
allowedSources = append(allowedSources, source)
136142
return true
137143
}

Diff for: go.mod

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ require (
88
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e
99
github.com/fatih/color v1.16.0
1010
github.com/mailru/easyjson v0.7.7
11-
github.com/manifoldco/promptui v0.9.0
12-
github.com/nbd-wtf/go-nostr v0.28.4
11+
github.com/nbd-wtf/go-nostr v0.28.6
1312
github.com/nbd-wtf/nostr-sdk v0.0.5
1413
github.com/urfave/cli/v2 v2.25.7
1514
golang.org/x/exp v0.0.0-20231006140011-7918f672742d
@@ -19,6 +18,8 @@ require (
1918
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
2019
github.com/btcsuite/btcd/btcutil v1.1.3 // indirect
2120
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 // indirect
21+
github.com/chzyer/logex v1.1.10 // indirect
22+
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 // indirect
2223
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
2324
github.com/decred/dcrd/crypto/blake256 v1.0.1 // indirect
2425
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect

Diff for: go.sum

+2-5
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,13 @@ github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlT
7474
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
7575
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
7676
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
77-
github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA=
78-
github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg=
7977
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
8078
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
8179
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
8280
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
8381
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
84-
github.com/nbd-wtf/go-nostr v0.28.4 h1:chGBpdCQvM9aInf/vVDishY8GHapgqFc/RLl2WDnHQM=
85-
github.com/nbd-wtf/go-nostr v0.28.4/go.mod h1:l9NRRaHPN+QwkqrjNKhnfYjQ0+nKP1xZrVxePPGUs+A=
82+
github.com/nbd-wtf/go-nostr v0.28.6 h1:iOyzk+6ReG0lvyRAar7w7omFmUk5mnXDyFYkJ+zEjiw=
83+
github.com/nbd-wtf/go-nostr v0.28.6/go.mod h1:aFcp8NO3erHg+glzBfh4wpaMrV1/ahcUPAgITdptxwA=
8684
github.com/nbd-wtf/nostr-sdk v0.0.5 h1:rec+FcDizDVO0W25PX0lgYMXvP7zNNOgI3Fu9UCm4BY=
8785
github.com/nbd-wtf/nostr-sdk v0.0.5/go.mod h1:iJJsikesCGLNFZ9dLqhLPDzdt924EagUmdQxT3w2Lmk=
8886
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
@@ -129,7 +127,6 @@ golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
129127
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
130128
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
131129
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
132-
golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
133130
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
134131
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
135132
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=

Diff for: helpers.go

-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ import (
2020

2121
const (
2222
LINE_PROCESSING_ERROR = iota
23-
24-
BOLD_ON = "\033[1m"
25-
BOLD_OFF = "\033[21m"
2623
)
2724

2825
var log = func(msg string, args ...any) {

0 commit comments

Comments
 (0)