Skip to content

Commit 77504d5

Browse files
authored
Merge pull request #24 from AkihiroSuda/dev
Remove github.com/pkg/errors, Go 1.16 CI; bump up go.mod
2 parents 2159031 + 150c3e0 commit 77504d5

File tree

8 files changed

+41
-40
lines changed

8 files changed

+41
-40
lines changed

.github/workflows/main.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
main:
1010
strategy:
1111
matrix:
12-
go-version: [1.16.x, 1.17.x]
12+
go-version: [1.17.x]
1313
platform: [ubuntu-latest, macos-latest]
1414
runs-on: ${{ matrix.platform }}
1515
steps:

cmd/sshocker/run.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package main
22

33
import (
4+
"errors"
5+
"fmt"
46
"net"
57
"os/user"
68
"path/filepath"
@@ -10,7 +12,6 @@ import (
1012
"github.com/lima-vm/sshocker/pkg/mount"
1113
"github.com/lima-vm/sshocker/pkg/ssh"
1214
"github.com/lima-vm/sshocker/pkg/sshocker"
13-
"github.com/pkg/errors"
1415
"github.com/urfave/cli/v2"
1516
)
1617

@@ -145,15 +146,15 @@ func parseFlagV(s string) (mount.Mount, error) {
145146
if split[2] == "ro" {
146147
m.Readonly = true
147148
} else {
148-
return m, errors.Errorf("cannot parse %q: unknown option %q", s, split[2])
149+
return m, fmt.Errorf("cannot parse %q: unknown option %q", s, split[2])
149150
}
150151
default:
151-
return m, errors.Errorf("cannot parse %q", s)
152+
return m, fmt.Errorf("cannot parse %q", s)
152153
}
153154
var err error
154155
m.Source, err = expandLocalPath(m.Source)
155156
if err != nil {
156-
return m, errors.Wrapf(err, "cannot use %q", s)
157+
return m, fmt.Errorf("cannot use %q: %w", s, err)
157158
}
158159
return m, nil
159160
}

cmd/sshocker/run_p.go

+6-8
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import (
44
"fmt"
55
"strconv"
66
"strings"
7-
8-
"github.com/pkg/errors"
97
)
108

119
// parseFlagP parses -p flag, akin to `docker run -p` flags.
@@ -16,30 +14,30 @@ func parseFlagP(s string) (string, error) {
1614
case 1:
1715
port, err := strconv.Atoi(split[0])
1816
if err != nil {
19-
return "", errors.Errorf("invalid port %q", split[0])
17+
return "", fmt.Errorf("invalid port %q", split[0])
2018
}
2119
return fmt.Sprintf("0.0.0.0:%d:localhost:%d", port, port), nil
2220
case 2:
2321
localPort, err := strconv.Atoi(split[0])
2422
if err != nil {
25-
return "", errors.Errorf("invalid port %q", split[0])
23+
return "", fmt.Errorf("invalid port %q", split[0])
2624
}
2725
remotePort, err := strconv.Atoi(split[1])
2826
if err != nil {
29-
return "", errors.Errorf("invalid port %q", split[1])
27+
return "", fmt.Errorf("invalid port %q", split[1])
3028
}
3129
return fmt.Sprintf("0.0.0.0:%d:localhost:%d", localPort, remotePort), nil
3230
case 3:
3331
localIP := split[0]
3432
localPort, err := strconv.Atoi(split[1])
3533
if err != nil {
36-
return "", errors.Errorf("invalid port %q", split[1])
34+
return "", fmt.Errorf("invalid port %q", split[1])
3735
}
3836
remotePort, err := strconv.Atoi(split[2])
3937
if err != nil {
40-
return "", errors.Errorf("invalid port %q", split[2])
38+
return "", fmt.Errorf("invalid port %q", split[2])
4139
}
4240
return fmt.Sprintf("%s:%d:localhost:%d", localIP, localPort, remotePort), nil
4341
}
44-
return "", errors.Errorf("cannot parse %q, should be [[LOCALIP:]LOCALPORT:]REMOTEPORT", s)
42+
return "", fmt.Errorf("cannot parse %q, should be [[LOCALIP:]LOCALPORT:]REMOTEPORT", s)
4543
}

go.mod

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ go 1.17
44

55
require (
66
github.com/hashicorp/go-multierror v1.1.1
7-
github.com/pkg/errors v0.9.1
87
github.com/pkg/sftp v1.13.4
98
github.com/sirupsen/logrus v1.8.1
109
github.com/urfave/cli/v2 v2.4.0
@@ -15,6 +14,6 @@ require (
1514
github.com/hashicorp/errwrap v1.0.0 // indirect
1615
github.com/kr/fs v0.1.0 // indirect
1716
github.com/russross/blackfriday/v2 v2.1.0 // indirect
18-
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 // indirect
19-
golang.org/x/sys v0.0.0-20210818153620-00dd8d7831e7 // indirect
17+
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd // indirect
18+
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf // indirect
2019
)

go.sum

+7-6
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l
1010
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
1111
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
1212
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
13-
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
14-
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
1513
github.com/pkg/sftp v1.13.4 h1:Lb0RYJCmgUcBgZosfoi9Y9sbl6+LJgOIgk/2Y4YjMFg=
1614
github.com/pkg/sftp v1.13.4/go.mod h1:LzqnAvaD5TWeNBsZpfKxSYn1MbjWwOsCIAFFJbpIsK8=
1715
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -27,18 +25,21 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
2725
github.com/urfave/cli/v2 v2.4.0 h1:m2pxjjDFgDxSPtO8WSdbndj17Wu2y8vOT86wE/tjr+I=
2826
github.com/urfave/cli/v2 v2.4.0/go.mod h1:NX9W0zmTvedE5oDoOMs2RTC8RvdK98NTYZE5LbaEYPg=
2927
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
30-
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ=
31-
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
28+
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd h1:XcWmESyNjXJMLahc3mqVQJcgSTDxFxhETVlfk9uGc38=
29+
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
3230
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
31+
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3332
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3433
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
34+
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3535
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3636
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
37-
golang.org/x/sys v0.0.0-20210818153620-00dd8d7831e7 h1:/bmDWM82ZX7TawqxuI8kVjKI0TXHdSY6pHJArewwHtU=
38-
golang.org/x/sys v0.0.0-20210818153620-00dd8d7831e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
37+
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf h1:Fm4IcnUL803i92qDlmB0obyHmosDrxZWxJL3gIeNqOw=
38+
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3939
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
4040
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
4141
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
42+
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
4243
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
4344
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
4445
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

pkg/reversesshfs/reversesshfs.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package reversesshfs
22

33
import (
44
"bytes"
5+
"errors"
6+
"fmt"
57
"html/template"
68
"io"
79
"os"
@@ -11,7 +13,6 @@ import (
1113

1214
"github.com/lima-vm/sshocker/pkg/ssh"
1315
"github.com/lima-vm/sshocker/pkg/util"
14-
"github.com/pkg/errors"
1516
"github.com/pkg/sftp"
1617
"github.com/sirupsen/logrus"
1718
)
@@ -31,7 +32,7 @@ func (rsf *ReverseSSHFS) Prepare() error {
3132
sshBinary := rsf.SSHConfig.Binary()
3233
sshArgs := rsf.SSHConfig.Args()
3334
if !filepath.IsAbs(rsf.RemotePath) {
34-
return errors.Errorf("unexpected relative path: %q", rsf.RemotePath)
35+
return fmt.Errorf("unexpected relative path: %q", rsf.RemotePath)
3536
}
3637
if rsf.Port != 0 {
3738
sshArgs = append(sshArgs, "-p", strconv.Itoa(rsf.Port))
@@ -42,7 +43,7 @@ func (rsf *ReverseSSHFS) Prepare() error {
4243
logrus.Debugf("executing ssh for preparing sshfs: %s %v", sshCmd.Path, sshCmd.Args)
4344
out, err := sshCmd.CombinedOutput()
4445
if err != nil {
45-
return errors.Wrapf(err, "failed to mkdir %q (remote): %q", rsf.RemotePath, string(out))
46+
return fmt.Errorf("failed to mkdir %q (remote): %q: %w", rsf.RemotePath, string(out), err)
4647
}
4748
return nil
4849
}
@@ -51,10 +52,10 @@ func (rsf *ReverseSSHFS) Start() error {
5152
sshBinary := rsf.SSHConfig.Binary()
5253
sshArgs := rsf.SSHConfig.Args()
5354
if !filepath.IsAbs(rsf.LocalPath) {
54-
return errors.Errorf("unexpected relative path: %q", rsf.LocalPath)
55+
return fmt.Errorf("unexpected relative path: %q", rsf.LocalPath)
5556
}
5657
if !filepath.IsAbs(rsf.RemotePath) {
57-
return errors.Errorf("unexpected relative path: %q", rsf.RemotePath)
58+
return fmt.Errorf("unexpected relative path: %q", rsf.RemotePath)
5859
}
5960
if rsf.Port != 0 {
6061
sshArgs = append(sshArgs, "-p", strconv.Itoa(rsf.Port))

pkg/ssh/ssh.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ package ssh
33
import (
44
"bufio"
55
"bytes"
6+
"errors"
7+
"fmt"
68
"os"
79
"os/exec"
810
"strconv"
911
"strings"
1012

11-
"github.com/pkg/errors"
1213
"github.com/sirupsen/logrus"
1314
)
1415

@@ -54,7 +55,7 @@ func ExitMaster(host string, port int, c *SSHConfig) error {
5455
logrus.Debugf("executing ssh for exiting the master: %s %v", cmd.Path, cmd.Args)
5556
out, err := cmd.CombinedOutput()
5657
if err != nil {
57-
return errors.Wrapf(err, "failed to execute `%s -O exit -p %d %s`, out=%q", c.Binary(), port, host, string(out))
58+
return fmt.Errorf("failed to execute `%s -O exit -p %d %s`, out=%q: %w", c.Binary(), port, host, string(out), err)
5859
}
5960
return nil
6061
}
@@ -65,17 +66,17 @@ func ParseScriptInterpreter(script string) (string, error) {
6566
r := bufio.NewReader(strings.NewReader(script))
6667
firstLine, partial, err := r.ReadLine()
6768
if err != nil {
68-
return "", errors.Wrapf(err, "cannot determine interpreter from script %q", script)
69+
return "", fmt.Errorf("cannot determine interpreter from script %q: %w", script, err)
6970
}
7071
if partial {
71-
return "", errors.Errorf("cannot determine interpreter from script %q: cannot read the first line", script)
72+
return "", fmt.Errorf("cannot determine interpreter from script %q: cannot read the first line", script)
7273
}
7374
if !strings.HasPrefix(string(firstLine), "#!") {
74-
return "", errors.Errorf("cannot determine interpreter from script %q: the first line lacks `#!`", script)
75+
return "", fmt.Errorf("cannot determine interpreter from script %q: the first line lacks `#!`", script)
7576
}
7677
interp := strings.TrimPrefix(string(firstLine), "#!")
7778
if interp == "" {
78-
return "", errors.Errorf("cannot determine interpreter from script %q: empty?", script)
79+
return "", fmt.Errorf("cannot determine interpreter from script %q: empty?", script)
7980
}
8081
return interp, nil
8182
}
@@ -105,8 +106,7 @@ func ExecuteScript(host string, port int, c *SSHConfig, script, scriptName strin
105106
logrus.Debugf("executing ssh for script %q: %s %v", scriptName, sshCmd.Path, sshCmd.Args)
106107
out, err := sshCmd.Output()
107108
if err != nil {
108-
return string(out), stderr.String(), errors.Wrapf(err, "failed to execute script %q: stdout=%q, stderr=%q",
109-
scriptName, string(out), stderr.String())
109+
return string(out), stderr.String(), fmt.Errorf("failed to execute script %q: stdout=%q, stderr=%q: %w", scriptName, string(out), stderr.String(), err)
110110
}
111111
return string(out), stderr.String(), nil
112112
}

pkg/sshocker/sshocker.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package sshocker
22

33
import (
4+
"errors"
5+
"fmt"
46
"os"
57
"os/exec"
68
"strconv"
79

810
"github.com/lima-vm/sshocker/pkg/mount"
911
"github.com/lima-vm/sshocker/pkg/reversesshfs"
1012
"github.com/lima-vm/sshocker/pkg/ssh"
11-
"github.com/pkg/errors"
1213
"github.com/sirupsen/logrus"
1314
)
1415

@@ -56,20 +57,20 @@ func (x *Sshocker) Run() error {
5657
SSHFSAdditionalArgs: x.SSHFSAdditionalArgs,
5758
}
5859
if err := rsf.Prepare(); err != nil {
59-
return errors.Wrapf(err, "failed to prepare mounting %q (local) onto %q (remote)", rsf.LocalPath, rsf.RemotePath)
60+
return fmt.Errorf("failed to prepare mounting %q (local) onto %q (remote): %w", rsf.LocalPath, rsf.RemotePath, err)
6061
}
6162
if err := rsf.Start(); err != nil {
62-
return errors.Wrapf(err, "failed to mount %q (local) onto %q (remote)", rsf.LocalPath, rsf.RemotePath)
63+
return fmt.Errorf("failed to mount %q (local) onto %q (remote): %w", rsf.LocalPath, rsf.RemotePath, err)
6364
}
6465
defer func() {
6566
if cErr := rsf.Close(); cErr != nil {
6667
logrus.WithError(cErr).Warnf("failed to unmount %q (remote)", rsf.RemotePath)
6768
}
6869
}()
6970
case mount.MountTypeInvalid:
70-
return errors.Errorf("invalid mount type %v", m.Type)
71+
return fmt.Errorf("invalid mount type %v", m.Type)
7172
default:
72-
return errors.Errorf("unknown mount type %v", m.Type)
73+
return fmt.Errorf("unknown mount type %v", m.Type)
7374
}
7475
}
7576
defer func() {

0 commit comments

Comments
 (0)