Commit 3f3f5929519195ad018b50733820ac88edc5373a

Parents: abe228b14d97d8d47e8ff4406de387fac45cfe68

From: Robin Jarry <robin@jarry.cc>
Date: Wed Oct 18 10:24:36 2023 +0700

treewide: replace shlex.Split with opt.SplitArgs
Replace the remaining shlex.Split calls with opt.SplitArgs. Remove
dependency to shlex.

Signed-off-by: Robin Jarry <robin@jarry.cc>
Reviewed-by: Koni Marti <koni.marti@gmail.com>
Tested-by: Moritz Poldrack <moritz@poldrack.dev>
Tested-by: Inwit <inwit@sindominio.net>

Stats

app/msgviewer.go +2/-6
commands/compose/send.go +3/-5
completer/completer.go +2/-5
go.mod +0/-1
go.sum +0/-2

Changeset

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
diff --git a/app/msgviewer.go b/app/msgviewer.go
index 8ac22bcccbd8261120e102bbe88c3091fc2cf7e9..abed93fdb776cab09e3f00a7fa67a533f423525a 100644
--- a/app/msgviewer.go
+++ b/app/msgviewer.go
@@ -13,7 +13,6 @@
 	"github.com/danwakefield/fnmatch"
 	"github.com/emersion/go-message/textproto"
 	"github.com/gdamore/tcell/v2"
-	"github.com/google/shlex"
 	"github.com/mattn/go-runewidth"
 
 	"git.sr.ht/~rjarry/aerc/config"
@@ -24,6 +23,7 @@ 	"git.sr.ht/~rjarry/aerc/lib/parse"
 	"git.sr.ht/~rjarry/aerc/lib/ui"
 	"git.sr.ht/~rjarry/aerc/log"
 	"git.sr.ht/~rjarry/aerc/models"
+	"git.sr.ht/~rjarry/go-opt"
 )
 
 var _ ProvidesMessages = (*MessageViewer)(nil)
@@ -431,11 +431,7 @@ 	if err != nil {
 		acct.PushError(fmt.Errorf("could not start pager: %w", err))
 		return nil, err
 	}
-	cmd, err := shlex.Split(pagerCmd)
-	if err != nil {
-		return nil, err
-	}
-
+	cmd := opt.SplitArgs(pagerCmd)
 	pager = exec.Command(cmd[0], cmd[1:]...)
 
 	info := msg.MessageInfo()
diff --git a/commands/compose/send.go b/commands/compose/send.go
index 6f90562841cbdd6e39cc0c66601809fb0df05612..1047ebade7c27ca0ed9e2d1627ff68babd44539b 100644
--- a/commands/compose/send.go
+++ b/commands/compose/send.go
@@ -12,7 +12,6 @@ 	"time"
 
 	"github.com/emersion/go-sasl"
 	"github.com/emersion/go-smtp"
-	"github.com/google/shlex"
 	"github.com/pkg/errors"
 
 	"git.sr.ht/~rjarry/aerc/app"
@@ -23,6 +22,7 @@ 	"git.sr.ht/~rjarry/aerc/lib"
 	"git.sr.ht/~rjarry/aerc/log"
 	"git.sr.ht/~rjarry/aerc/models"
 	"git.sr.ht/~rjarry/aerc/worker/types"
+	"git.sr.ht/~rjarry/go-opt"
 	"github.com/emersion/go-message/mail"
 	"golang.org/x/oauth2"
 )
@@ -271,10 +271,7 @@ 	archive string
 }
 
 func newSendmailSender(ctx sendCtx) (io.WriteCloser, error) {
-	args, err := shlex.Split(ctx.uri.Path)
-	if err != nil {
-		return nil, err
-	}
+	args := opt.SplitArgs(ctx.uri.Path)
 	if len(args) == 0 {
 		return nil, fmt.Errorf("no command specified")
 	}
@@ -286,6 +283,7 @@ 	}
 	args = append(args[1:], rs...)
 	cmd := exec.Command(bin, args...)
 	s := &sendmailSender{cmd: cmd}
+	var err error
 	s.stdin, err = s.cmd.StdinPipe()
 	if err != nil {
 		return nil, errors.Wrap(err, "cmd.StdinPipe")
diff --git a/completer/completer.go b/completer/completer.go
index 9b237fa8d41969a4bbf62e063eeb5651114f79ad..647e9ed7885e2abb3aae5b41acca302630afc893 100644
--- a/completer/completer.go
+++ b/completer/completer.go
@@ -13,7 +13,7 @@ 	"strings"
 	"syscall"
 
 	"git.sr.ht/~rjarry/aerc/log"
-	"github.com/google/shlex"
+	"git.sr.ht/~rjarry/go-opt"
 )
 
 // A Completer is used to autocomplete text inputs based on the configured
@@ -142,10 +142,7 @@ 	if strings.TrimSpace(c.AddressBookCmd) == "" {
 		return nil, fmt.Errorf("no command configured")
 	}
 	queryCmd := strings.ReplaceAll(c.AddressBookCmd, "%s", s)
-	parts, err := shlex.Split(queryCmd)
-	if err != nil {
-		return nil, fmt.Errorf("could not lex command")
-	}
+	parts := opt.SplitArgs(queryCmd)
 	if len(parts) < 1 {
 		return nil, fmt.Errorf("empty command")
 	}
diff --git a/go.mod b/go.mod
index 6705dffcb89b5b082e8c96680cc34d557f81230c..2d00658445bedce20ae17e17ecdd60c97a37440f 100644
--- a/go.mod
+++ b/go.mod
@@ -23,7 +23,6 @@ 	github.com/fsnotify/fsnotify v1.6.0
 	github.com/gatherstars-com/jwz v1.4.0
 	github.com/gdamore/tcell/v2 v2.6.0
 	github.com/go-ini/ini v1.67.0
-	github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
 	github.com/lithammer/fuzzysearch v1.1.5
 	github.com/mattn/go-isatty v0.0.18
 	github.com/mattn/go-runewidth v0.0.14
diff --git a/go.sum b/go.sum
index a22537893d9d86652a6ac795067c110e2ed93e10..f8aec3ec88754d2e0405fb392b3d712bd1c61604 100644
--- a/go.sum
+++ b/go.sum
@@ -82,8 +82,6 @@ github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
 github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
-github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
-github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
 github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/jaytaylor/html2text v0.0.0-20200412013138-3577fbdbcff7/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk=