Skip to content

Commit 01df753

Browse files
committed
*: use go-billy instead of os calls
1 parent 67af9d7 commit 01df753

25 files changed

+521
-568
lines changed

common_test.go

+31
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package git
22

33
import (
4+
"os"
45
"testing"
56

67
"github.com/go-git/go-git/v5/plumbing"
@@ -12,6 +13,7 @@ import (
1213

1314
"github.com/go-git/go-billy/v5"
1415
"github.com/go-git/go-billy/v5/memfs"
16+
"github.com/go-git/go-billy/v5/osfs"
1517
"github.com/go-git/go-billy/v5/util"
1618
fixtures "github.com/go-git/go-git-fixtures/v4"
1719
. "gopkg.in/check.v1"
@@ -131,6 +133,35 @@ func (s *BaseSuite) GetLocalRepositoryURL(f *fixtures.Fixture) string {
131133
return f.DotGit().Root()
132134
}
133135

136+
func (s *BaseSuite) TemporalDir() (path string, clean func()) {
137+
fs := osfs.New(os.TempDir())
138+
path, err := util.TempDir(fs, "", "")
139+
if err != nil {
140+
panic(err)
141+
}
142+
143+
return fs.Join(fs.Root(), path), func() {
144+
util.RemoveAll(fs, path)
145+
}
146+
}
147+
148+
func (s *BaseSuite) TemporalFilesystem() (fs billy.Filesystem, clean func()) {
149+
fs = osfs.New(os.TempDir())
150+
path, err := util.TempDir(fs, "", "")
151+
if err != nil {
152+
panic(err)
153+
}
154+
155+
fs, err = fs.Chroot(path)
156+
if err != nil {
157+
panic(err)
158+
}
159+
160+
return fs, func() {
161+
util.RemoveAll(fs, path)
162+
}
163+
}
164+
134165
type SuiteCommon struct{}
135166

136167
var _ = Suite(&SuiteCommon{})

config/config.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"sort"
1313
"strconv"
1414

15+
"github.com/go-git/go-billy/v5/osfs"
1516
"github.com/go-git/go-git/v5/internal/url"
1617
format "github.com/go-git/go-git/v5/plumbing/format/config"
1718
"github.com/mitchellh/go-homedir"
@@ -158,7 +159,7 @@ func LoadConfig(scope Scope) (*Config, error) {
158159
}
159160

160161
for _, file := range files {
161-
f, err := os.Open(file)
162+
f, err := osfs.Default.Open(file)
162163
if err != nil {
163164
if os.IsNotExist(err) {
164165
continue

config/config_test.go

+7-13
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package config
22

33
import (
4-
"io/ioutil"
54
"os"
65
"path/filepath"
76
"strings"
87

8+
"github.com/go-git/go-billy/v5/osfs"
9+
"github.com/go-git/go-billy/v5/util"
910
"github.com/go-git/go-git/v5/plumbing"
1011
. "gopkg.in/check.v1"
1112
)
@@ -154,7 +155,7 @@ func (s *ConfigSuite) TestMarshal(c *C) {
154155
}
155156

156157
cfg.URLs["ssh://[email protected]/"] = &URL{
157-
Name: "ssh://[email protected]/",
158+
Name: "ssh://[email protected]/",
158159
InsteadOf: "https://github.com/",
159160
}
160161

@@ -204,23 +205,16 @@ func (s *ConfigSuite) TestUnmarshalMarshal(c *C) {
204205
c.Assert(string(output), DeepEquals, string(input))
205206
}
206207

207-
func (s *ConfigSuite) TestLoadConfig(c *C) {
208-
cfg, err := LoadConfig(GlobalScope)
209-
c.Assert(cfg.User.Email, Not(Equals), "")
210-
c.Assert(err, IsNil)
211-
212-
}
213-
214208
func (s *ConfigSuite) TestLoadConfigXDG(c *C) {
215209
cfg := NewConfig()
216210
cfg.User.Name = "foo"
217211
cfg.User.Email = "[email protected]"
218212

219-
tmp, err := ioutil.TempDir("", "test-commit-options")
213+
tmp, err := util.TempDir(osfs.Default, "", "test-commit-options")
220214
c.Assert(err, IsNil)
221-
defer os.RemoveAll(tmp)
215+
defer util.RemoveAll(osfs.Default, tmp)
222216

223-
err = os.Mkdir(filepath.Join(tmp, "git"), 0777)
217+
err = osfs.Default.MkdirAll(filepath.Join(tmp, "git"), 0777)
224218
c.Assert(err, IsNil)
225219

226220
os.Setenv("XDG_CONFIG_HOME", tmp)
@@ -232,7 +226,7 @@ func (s *ConfigSuite) TestLoadConfigXDG(c *C) {
232226
c.Assert(err, IsNil)
233227

234228
cfgFile := filepath.Join(tmp, "git/config")
235-
err = ioutil.WriteFile(cfgFile, content, 0777)
229+
err = util.WriteFile(osfs.Default, cfgFile, content, 0777)
236230
c.Assert(err, IsNil)
237231

238232
cfg, err = LoadConfig(GlobalScope)

go.mod

+6-5
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@ module github.com/go-git/go-git/v5
22

33
require (
44
github.com/Microsoft/go-winio v0.4.16 // indirect
5-
github.com/ProtonMail/go-crypto v0.0.0-20210329181949-3900d675f39b
5+
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7
6+
github.com/acomagu/bufpipe v1.0.3
67
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 // indirect
78
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5
89
github.com/emirpasic/gods v1.12.0
910
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 // indirect
1011
github.com/gliderlabs/ssh v0.2.2
1112
github.com/go-git/gcfg v1.5.0
12-
github.com/go-git/go-billy/v5 v5.1.0
13-
github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12
13+
github.com/go-git/go-billy/v5 v5.3.0
14+
github.com/go-git/go-git-fixtures/v4 v4.2.0
1415
github.com/google/go-cmp v0.3.0
1516
github.com/imdario/mergo v0.3.12
1617
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
@@ -19,9 +20,9 @@ require (
1920
github.com/mitchellh/go-homedir v1.1.0
2021
github.com/sergi/go-diff v1.1.0
2122
github.com/xanzy/ssh-agent v0.3.0
22-
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2
23+
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b
2324
golang.org/x/net v0.0.0-20210326060303-6b1517762897
24-
golang.org/x/sys v0.0.0-20210415045647-66c3f260301c // indirect
25+
golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79
2526
golang.org/x/text v0.3.3
2627
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
2728
gopkg.in/warnings.v0 v0.1.2 // indirect

go.sum

+18-46
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
22
github.com/Microsoft/go-winio v0.4.16 h1:FtSW/jqD+l4ba5iPBj9CODVtgfYAD8w2wS923g/cFDk=
33
github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0=
4-
github.com/ProtonMail/go-crypto v0.0.0-20210329181949-3900d675f39b h1:E0jcApeWTn0zEUOANmwLg2k3IfTIyX4ffz2l95AEIBk=
5-
github.com/ProtonMail/go-crypto v0.0.0-20210329181949-3900d675f39b/go.mod h1:HTM9X7e9oLwn7RiqLG0UVwVRJenLs3wN+tQ0NPAfwMQ=
6-
github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs=
7-
github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=
4+
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 h1:YoJbenK9C67SkzkDfmQuVln04ygHj3vjZfd9FL+GmQQ=
5+
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
6+
github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk=
7+
github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4=
88
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA=
99
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
1010
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
@@ -21,46 +21,36 @@ github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0=
2121
github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
2222
github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4=
2323
github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E=
24-
github.com/go-git/go-billy/v5 v5.0.0 h1:7NQHvd9FVid8VL4qVUMm8XifBK+2xCoZ2lSk0agRrHM=
25-
github.com/go-git/go-billy/v5 v5.0.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0=
26-
github.com/go-git/go-billy/v5 v5.1.0 h1:4pl5BV4o7ZG/lterP4S6WzJ6xr49Ba5ET9ygheTYahk=
27-
github.com/go-git/go-billy/v5 v5.1.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0=
28-
github.com/go-git/go-git-fixtures/v4 v4.0.1 h1:q+IFMfLx200Q3scvt2hN79JsEzy4AmBTp/pqnefH+Bc=
29-
github.com/go-git/go-git-fixtures/v4 v4.0.1/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw=
30-
github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12 h1:PbKy9zOy4aAKrJ5pibIRpVO2BXnK1Tlcg+caKI7Ox5M=
31-
github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw=
24+
github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0=
25+
github.com/go-git/go-billy/v5 v5.3.0 h1:KZL1OFdS+afiIjN4hr/zpj5cEtC0OJhbmTA18PsBb8c=
26+
github.com/go-git/go-billy/v5 v5.3.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0=
27+
github.com/go-git/go-git-fixtures/v4 v4.2.0 h1:6fkid8QaA0iWWZoRIMR8lY+nTS/T+ajMKXjPV3DNqyQ=
28+
github.com/go-git/go-git-fixtures/v4 v4.2.0/go.mod h1:qiUdjIecVv4CVoAxqy1kQBCZXfi/MhoyOiItV+0ppBk=
3229
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
3330
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
34-
github.com/imdario/mergo v0.3.9 h1:UauaLniWCFHWd+Jp9oCEkTBj8VO/9DKg3PV3VCNMDIg=
35-
github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
3631
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
3732
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
3833
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
3934
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
40-
github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=
41-
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
4235
github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc=
4336
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
44-
github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY=
45-
github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
4637
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck=
4738
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
4839
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
49-
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
5040
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
5141
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
5242
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
5343
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
54-
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
5544
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
5645
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
5746
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
47+
github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A=
48+
github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA=
5849
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
5950
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
60-
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
6151
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
62-
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
6352
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
53+
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
6454
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
6555
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
6656
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -72,55 +62,37 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
7262
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
7363
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
7464
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
75-
github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70=
76-
github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
7765
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=
7866
github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0=
7967
golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
80-
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
81-
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 h1:xMPOj6Pz6UipU1wXLkrtqpHbR0AVFnyPEQq/wRWz9lM=
82-
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
83-
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w=
8468
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
85-
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
86-
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
87-
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
69+
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b h1:7mWr3k41Qtv8XlltBkDkl8LoP3mpSgBW8BUoxtEdbXg=
70+
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
8871
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
8972
golang.org/x/net v0.0.0-20210326060303-6b1517762897 h1:KrsHThm5nFk34YtATK1LsThyGhGbGe1olrte/HInHvs=
9073
golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k=
9174
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
92-
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
93-
golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
94-
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
9575
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
9676
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
97-
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
98-
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So=
9977
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
10078
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
10179
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
102-
golang.org/x/sys v0.0.0-20210324051608-47abb6519492 h1:Paq34FxTluEPvVyayQqMPgHm+vTOrIifmcYxFBx9TLg=
10380
golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
104-
golang.org/x/sys v0.0.0-20210415045647-66c3f260301c h1:6L+uOeS3OQt/f4eFHXZcTxeZrGCuz+CLElgEBjbcTA4=
105-
golang.org/x/sys v0.0.0-20210415045647-66c3f260301c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
106-
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
81+
golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79 h1:RX8C8PRZc2hTIod4ds8ij+/4RQX3AqhYj3uOHmyaz4E=
82+
golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
83+
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
10784
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
108-
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
109-
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
110-
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
111-
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
11285
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
11386
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
11487
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
11588
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
11689
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
117-
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
11890
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
11991
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
12092
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
12193
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
12294
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
12395
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
124-
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
12596
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
97+
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
12698
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

options_test.go

+20-17
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package git
22

33
import (
4-
"io/ioutil"
54
"os"
6-
"path/filepath"
75

6+
"github.com/go-git/go-billy/v5/util"
87
"github.com/go-git/go-git/v5/config"
98
"github.com/go-git/go-git/v5/plumbing"
109
"github.com/go-git/go-git/v5/plumbing/object"
@@ -39,8 +38,8 @@ func (s *OptionsSuite) TestCommitOptionsLoadGlobalConfigUser(c *C) {
3938
cfg.User.Name = "foo"
4039
cfg.User.Email = "[email protected]"
4140

42-
s.writeGlobalConfig(c, cfg)
43-
defer s.clearGlobalConfig(c)
41+
clean := s.writeGlobalConfig(c, cfg)
42+
defer clean()
4443

4544
o := CommitOptions{}
4645
err := o.Validate(s.Repository)
@@ -59,8 +58,8 @@ func (s *OptionsSuite) TestCommitOptionsLoadGlobalCommitter(c *C) {
5958
cfg.Committer.Name = "bar"
6059
cfg.Committer.Email = "[email protected]"
6160

62-
s.writeGlobalConfig(c, cfg)
63-
defer s.clearGlobalConfig(c)
61+
clean := s.writeGlobalConfig(c, cfg)
62+
defer clean()
6463

6564
o := CommitOptions{}
6665
err := o.Validate(s.Repository)
@@ -77,8 +76,8 @@ func (s *OptionsSuite) TestCreateTagOptionsLoadGlobal(c *C) {
7776
cfg.User.Name = "foo"
7877
cfg.User.Email = "[email protected]"
7978

80-
s.writeGlobalConfig(c, cfg)
81-
defer s.clearGlobalConfig(c)
79+
clean := s.writeGlobalConfig(c, cfg)
80+
defer clean()
8281

8382
o := CreateTagOptions{
8483
Message: "foo",
@@ -91,23 +90,27 @@ func (s *OptionsSuite) TestCreateTagOptionsLoadGlobal(c *C) {
9190
c.Assert(o.Tagger.Email, Equals, "[email protected]")
9291
}
9392

94-
func (s *OptionsSuite) writeGlobalConfig(c *C, cfg *config.Config) {
95-
tmp, err := ioutil.TempDir("", "test-options")
93+
func (s *OptionsSuite) writeGlobalConfig(c *C, cfg *config.Config) func() {
94+
fs, clean := s.TemporalFilesystem()
95+
96+
tmp, err := util.TempDir(fs, "", "test-options")
9697
c.Assert(err, IsNil)
9798

98-
err = os.Mkdir(filepath.Join(tmp, "git"), 0777)
99+
err = fs.MkdirAll(fs.Join(tmp, "git"), 0777)
99100
c.Assert(err, IsNil)
100101

101-
os.Setenv("XDG_CONFIG_HOME", tmp)
102+
os.Setenv("XDG_CONFIG_HOME", fs.Join(fs.Root(), tmp))
102103

103104
content, err := cfg.Marshal()
104105
c.Assert(err, IsNil)
105106

106-
cfgFile := filepath.Join(tmp, "git/config")
107-
err = ioutil.WriteFile(cfgFile, content, 0777)
107+
cfgFile := fs.Join(tmp, "git/config")
108+
err = util.WriteFile(fs, cfgFile, content, 0777)
108109
c.Assert(err, IsNil)
109-
}
110110

111-
func (s *OptionsSuite) clearGlobalConfig(c *C) {
112-
os.Setenv("XDG_CONFIG_HOME", "")
111+
return func() {
112+
clean()
113+
os.Setenv("XDG_CONFIG_HOME", "")
114+
115+
}
113116
}

0 commit comments

Comments
 (0)