Skip to content

Commit

Permalink
Update deps (gopasspw#2168)
Browse files Browse the repository at this point in the history
Ran 'make upgrade' (includes gofumpt).

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <[email protected]>
  • Loading branch information
dominikschulz authored Mar 17, 2022
1 parent a080c25 commit 117db90
Show file tree
Hide file tree
Showing 77 changed files with 161 additions and 199 deletions.
3 changes: 1 addition & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,7 @@ gen:
@$(GO) generate ./...

fmt:
@gofmt -s -l -w $(GOFILES_NOVENDOR)
@goimports -l -w $(GOFILES_NOVENDOR)
@gofumpt -l -w $(GOFILES_NOVENDOR)
@$(GO) mod tidy

deps:
Expand Down
6 changes: 3 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ require (
github.com/stretchr/testify v1.7.1
github.com/twpayne/go-pinentry v0.2.0
github.com/urfave/cli/v2 v2.4.0
golang.org/x/crypto v0.0.0-20220312131142-6068a2e6cfdc
golang.org/x/exp v0.0.0-20220312040426-20fd27f61765
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd
golang.org/x/exp v0.0.0-20220317015231-48e79f11773a
golang.org/x/net v0.0.0-20220225172249-27dd8689420f
golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
)
Expand Down
12 changes: 6 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20211215165025-cf75a172585e/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
golang.org/x/crypto v0.0.0-20220312131142-6068a2e6cfdc h1:i6Z9eOQAdM7lvsbkT3fwFNtSAAC+A59TYilFj53HW+E=
golang.org/x/crypto v0.0.0-20220312131142-6068a2e6cfdc/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd h1:XcWmESyNjXJMLahc3mqVQJcgSTDxFxhETVlfk9uGc38=
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
Expand All @@ -254,8 +254,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20220312040426-20fd27f61765 h1:p80Xjx7+xLY3+FFWW3KSo34VwQwWFdSKANfks5INL2g=
golang.org/x/exp v0.0.0-20220312040426-20fd27f61765/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE=
golang.org/x/exp v0.0.0-20220317015231-48e79f11773a h1:DAzrdbxsb5tXNOhMCSwF7ZdfMbW46hE9fSVO6BsmUZM=
golang.org/x/exp v0.0.0-20220317015231-48e79f11773a/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
Expand Down Expand Up @@ -363,8 +363,8 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5 h1:y/woIyUBFbpQGKS0u1aHF/40WUDnek3fPOyD08H5Vng=
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf h1:Fm4IcnUL803i92qDlmB0obyHmosDrxZWxJL3gIeNqOw=
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
Expand Down
2 changes: 1 addition & 1 deletion helpers/man/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ func findExecutable(file string) error {
if err != nil {
return err
}
if m := d.Mode(); !m.IsDir() && m&0111 != 0 {
if m := d.Mode(); !m.IsDir() && m&0o111 != 0 {
return nil
}
return fs.ErrPermission
Expand Down
1 change: 0 additions & 1 deletion helpers/postrel/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,6 @@ func (r *repo) updateFinalize(path string) error {
}
// git push myfork gopass-VER
return r.gitPush(r.rem)

}

func (r *repo) gitCoMaster() error {
Expand Down
4 changes: 2 additions & 2 deletions internal/action/action_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ func TestNew(t *testing.T) {

t.Run("init an existing plain store", func(t *testing.T) {
cfg.Path = filepath.Join(td, "store")
assert.NoError(t, os.MkdirAll(cfg.Path, 0700))
assert.NoError(t, os.WriteFile(filepath.Join(cfg.Path, plain.IDFile), []byte("foobar"), 0600))
assert.NoError(t, os.MkdirAll(cfg.Path, 0o700))
assert.NoError(t, os.WriteFile(filepath.Join(cfg.Path, plain.IDFile), []byte("foobar"), 0o600))
_, err = New(cfg, sv)
assert.NoError(t, err)
})
Expand Down
6 changes: 2 additions & 4 deletions internal/action/binary.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ import (
"github.com/urfave/cli/v2"
)

var (
binstdin = os.Stdin
)
var binstdin = os.Stdin

// Cat prints to or reads from STDIN/STDOUT.
func (s *Action) Cat(c *cli.Context) error {
Expand Down Expand Up @@ -179,7 +177,7 @@ func (s *Action) binaryCopyFromStoreToFile(ctx context.Context, from, to string,
if err != nil {
return fmt.Errorf("failed to read data from %q: %w", from, err)
}
if err := os.WriteFile(to, buf, 0600); err != nil {
if err := os.WriteFile(to, buf, 0o600); err != nil {
return fmt.Errorf("failed to write data to %q: %w", to, err)
}

Expand Down
4 changes: 2 additions & 2 deletions internal/action/binary_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ func TestBinaryCopy(t *testing.T) {
defer buf.Reset()

infile := filepath.Join(u.Dir, "input.txt")
assert.NoError(t, os.WriteFile(infile, []byte("0xDEADBEEF\n"), 0644))
assert.NoError(t, os.WriteFile(infile, []byte("0xDEADBEEF\n"), 0o644))
assert.NoError(t, act.binaryCopy(ctx, gptest.CliCtx(ctx, t), infile, "txt", true))
})

Expand Down Expand Up @@ -216,5 +216,5 @@ func writeBinfile(t *testing.T, fn string) {
n, err := rand.Read(buf)
assert.NoError(t, err)
assert.Equal(t, size, n)
assert.NoError(t, os.WriteFile(fn, buf, 0644))
assert.NoError(t, os.WriteFile(fn, buf, 0o644))
}
4 changes: 2 additions & 2 deletions internal/action/clone_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ import (
// aGitRepo creates and initializes a small git repo.
func aGitRepo(ctx context.Context, u *gptest.Unit, t *testing.T, name string) string {
gd := filepath.Join(u.Dir, name)
assert.NoError(t, os.MkdirAll(gd, 0700))
assert.NoError(t, os.MkdirAll(gd, 0o700))

_, err := git.New(gd)
assert.Error(t, err)

idf := filepath.Join(gd, ".gpg-id")
assert.NoError(t, os.WriteFile(idf, []byte("0xDEADBEEF"), 0600))
assert.NoError(t, os.WriteFile(idf, []byte("0xDEADBEEF"), 0o600))

gr, err := git.Init(ctx, gd, "Nobody", "[email protected]")
assert.NoError(t, err)
Expand Down
4 changes: 1 addition & 3 deletions internal/action/generate.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ const (
defaultXKCDLength = 4
)

var (
reNumber = regexp.MustCompile(`^\d+$`)
)
var reNumber = regexp.MustCompile(`^\d+$`)

// Generate and save a password.
func (s *Action) Generate(c *cli.Context) error {
Expand Down
3 changes: 1 addition & 2 deletions internal/action/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func (s *Action) List(c *cli.Context) error {
return exit.Error(exit.List, err, "failed to list store: %s", err)
}

//set limit to infinite by default unless it's set with the flag
// set limit to infinite by default unless it's set with the flag
limit := tree.INF
if c.IsSet("limit") {
limit = c.Int("limit")
Expand All @@ -54,7 +54,6 @@ func (s *Action) List(c *cli.Context) error {
}

func (s *Action) listFiltered(ctx context.Context, l *tree.Root, limit int, flat, folders, stripPrefix bool, filter string) error {

sep := string(leaf.Sep)

if filter == "" || filter == sep {
Expand Down
1 change: 0 additions & 1 deletion internal/action/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,6 @@ foo2/bar2

assert.Equal(t, want, buf.String())
buf.Reset()

}

func TestRedirectPager(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion internal/action/process_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func TestProcess(t *testing.T) {
host=127.0.0.1
port=3306
user={{ getval "server/local/mysql" "username" }}
password={{ getpw "server/local/mysql" }}`), 0644)
password={{ getpw "server/local/mysql" }}`), 0o644)
require.NoError(t, err)

t.Run("process template", func(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion internal/action/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ func (s *Action) initExportPublicKey(ctx context.Context, crypto backend.Crypto,
if err != nil {
return fmt.Errorf("failed to export public key: %w", err)
}
if err := os.WriteFile(fn, pk, 06444); err != nil {
if err := os.WriteFile(fn, pk, 0o6444); err != nil {
out.Errorf(ctx, "❌ Failed to export public key %q: %q", fn, err)
return err
}
Expand Down
2 changes: 1 addition & 1 deletion internal/action/update_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func TestUpdate(t *testing.T) {
hdr := &tar.Header{
Typeflag: tar.TypeReg,
Name: "gopass",
Mode: 0600,
Mode: 0o600,
Size: int64(len(body)),
}
if err := tw.WriteHeader(hdr); err != nil {
Expand Down
6 changes: 2 additions & 4 deletions internal/audit/audit.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,8 @@ type secretGetter interface {

type validator func(string, gopass.Secret) error

var (
// DefaultExpiration is the default expiration time for secrets.
DefaultExpiration = time.Hour * 24 * 365
)
// DefaultExpiration is the default expiration time for secrets.
var DefaultExpiration = time.Hour * 24 * 365

// Batch runs a password strength audit on multiple secrets. Expiration is in days.
func Batch(ctx context.Context, secrets []string, secStore secretGetter, expiration int) error {
Expand Down
6 changes: 2 additions & 4 deletions internal/backend/crypto/age/askpass.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,8 @@ type askPass struct {
cache cacher
}

var (
// DefaultAskPass is the default password cache.
DefaultAskPass = newAskPass()
)
// DefaultAskPass is the default password cache.
var DefaultAskPass = newAskPass()

func newAskPass() *askPass {
return &askPass{
Expand Down
2 changes: 1 addition & 1 deletion internal/backend/crypto/age/encrypt.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,5 +82,5 @@ func (a *Age) encryptFile(ctx context.Context, filename string, plaintext []byte
return err
}

return os.WriteFile(filename, buf, 0600)
return os.WriteFile(filename, buf, 0o600)
}
6 changes: 2 additions & 4 deletions internal/backend/crypto/age/identities.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,7 @@ import (
"github.com/gopasspw/gopass/pkg/debug"
)

var (
idRecpCacheKey = "identity"
)
var idRecpCacheKey = "identity"

// Identities returns all identities, used for decryption.
func (a *Age) Identities(ctx context.Context) ([]age.Identity, error) {
Expand Down Expand Up @@ -182,7 +180,7 @@ func (a *Age) saveIdentities(ctx context.Context, ids []string, newFile bool) er
}

// ensure directory exists.
if err := os.MkdirAll(filepath.Dir(a.identity), 0700); err != nil {
if err := os.MkdirAll(filepath.Dir(a.identity), 0o700); err != nil {
debug.Log("failed to create directory for the keyring at %s: %s", a.identity, err)
return err
}
Expand Down
8 changes: 3 additions & 5 deletions internal/backend/crypto/age/ssh.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ import (
"golang.org/x/crypto/ssh"
)

var (
sshCache map[string]age.Identity
)
var sshCache map[string]age.Identity

// getSSHIdentities returns all SSH identities available for the current user.
func (a *Age) getSSHIdentities(ctx context.Context) (map[string]age.Identity, error) {
Expand All @@ -38,10 +36,10 @@ func (a *Age) getSSHIdentities(ctx context.Context) (map[string]age.Identity, er
}
recp, id, err := a.parseSSHIdentity(ctx, fn)
if err != nil {
//debug.Log("Failed to parse SSH identity %s: %s", fn, err)
// debug.Log("Failed to parse SSH identity %s: %s", fn, err)
continue
}
//debug.Log("parsed SSH identity %s from %s", recp, fn)
// debug.Log("parsed SSH identity %s from %s", recp, fn)
ids[recp] = id
}
sshCache = ids
Expand Down
4 changes: 1 addition & 3 deletions internal/backend/crypto/gpg/gpgconf/utils_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ import (
"syscall"
)

var (
fd0 = "/proc/self/fd/0"
)
var fd0 = "/proc/self/fd/0"

// TTY returns the tty of the current process.
// see https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html
Expand Down
4 changes: 2 additions & 2 deletions internal/backend/crypto_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ func TestDetectCrypto(t *testing.T) {
} {
fsDir := filepath.Join(td, "fs")
os.RemoveAll(fsDir)
assert.NoError(t, os.MkdirAll(fsDir, 0700))
assert.NoError(t, os.WriteFile(filepath.Join(fsDir, tc.file), []byte("foo"), 0600))
assert.NoError(t, os.MkdirAll(fsDir, 0o700))
assert.NoError(t, os.WriteFile(filepath.Join(fsDir, tc.file), []byte("foo"), 0o600))

r, err := DetectStorage(ctx, fsDir)
assert.NoError(t, err)
Expand Down
6 changes: 3 additions & 3 deletions internal/backend/rcs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ func TestClone(t *testing.T) {
}()

repo := filepath.Join(td, "repo")
require.NoError(t, os.MkdirAll(repo, 0700))
require.NoError(t, os.MkdirAll(repo, 0o700))

store := filepath.Join(td, "store")
require.NoError(t, os.MkdirAll(store, 0700))
require.NoError(t, os.MkdirAll(store, 0o700))

cmd := exec.Command("git", "init", repo)
assert.NoError(t, cmd.Run())
Expand Down Expand Up @@ -54,7 +54,7 @@ func TestInitRCS(t *testing.T) {
}()

gitDir := filepath.Join(td, "git")
assert.NoError(t, os.MkdirAll(filepath.Join(gitDir, ".git"), 0700))
assert.NoError(t, os.MkdirAll(filepath.Join(gitDir, ".git"), 0o700))

r, err := InitStorage(ctx, GitFS, gitDir)
assert.NoError(t, err)
Expand Down
6 changes: 2 additions & 4 deletions internal/backend/storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@ import (
"github.com/gopasspw/gopass/pkg/debug"
)

var (
// ErrNotSupported is returned by backends for unsupported calls.
ErrNotSupported = fmt.Errorf("not supported")
)
// ErrNotSupported is returned by backends for unsupported calls.
var ErrNotSupported = fmt.Errorf("not supported")

// StorageBackend is a type of storage backend.
type StorageBackend int
Expand Down
8 changes: 4 additions & 4 deletions internal/backend/storage/fs/fsck.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,13 @@ func (s *Store) fsckCheckFile(ctx context.Context, filename string) error {
return err
}

if fi.Mode().Perm()&0177 == 0 {
if fi.Mode().Perm()&0o177 == 0 {
return nil
}

out.Printf(ctx, "Permissions too wide: %s (%s)", filename, fi.Mode().String())

np := uint32(fi.Mode().Perm() & 0600)
np := uint32(fi.Mode().Perm() & 0o600)
out.Printf(ctx, " Fixing permissions from %s to %s", fi.Mode().Perm().String(), os.FileMode(np).Perm().String())
if err := syscall.Chmod(filename, np); err != nil {
out.Errorf(ctx, " Failed to set permissions for %s to rw-------: %s", filename, err)
Expand All @@ -84,10 +84,10 @@ func (s *Store) fsckCheckDir(ctx context.Context, dirname string) error {

// check if any group or other perms are set,
// i.e. check for perms other than rwx------
if fi.Mode().Perm()&077 != 0 {
if fi.Mode().Perm()&0o77 != 0 {
out.Printf(ctx, "Permissions too wide %s on dir %s", fi.Mode().Perm().String(), dirname)

np := uint32(fi.Mode().Perm() & 0700)
np := uint32(fi.Mode().Perm() & 0o700)
out.Printf(ctx, " Fixing permissions from %s to %s", fi.Mode().Perm().String(), os.FileMode(np).Perm().String())
if err := syscall.Chmod(dirname, np); err != nil {
out.Errorf(ctx, " Failed to set permissions for %s to rwx------: %s", dirname, err)
Expand Down
4 changes: 2 additions & 2 deletions internal/backend/storage/fs/fsck_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ func TestFsck(t *testing.T) {
filepath.Join(path, "foo", "bar"),
filepath.Join(path, "foo", "zen"),
} {
assert.NoError(t, os.MkdirAll(filepath.Dir(fn), 0777))
assert.NoError(t, os.WriteFile(fn, []byte(fn), 0663))
assert.NoError(t, os.MkdirAll(filepath.Dir(fn), 0o777))
assert.NoError(t, os.WriteFile(fn, []byte(fn), 0o663))
}

assert.NoError(t, s.Fsck(ctx))
Expand Down
2 changes: 1 addition & 1 deletion internal/backend/storage/fs/link.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func (s *Store) Link(ctx context.Context, from, to string) error {
}()

toDir := filepath.Dir(toPath)
if err := os.MkdirAll(toDir, 0700); err != nil {
if err := os.MkdirAll(toDir, 0o700); err != nil {
return fmt.Errorf("failed to create destination dir %q: %w", toDir, err)
}

Expand Down
Loading

0 comments on commit 117db90

Please sign in to comment.