# Test editing go.work files. go work init m cmpenv go.work go.work.want_initial go work edit -use n cmpenv go.work go.work.want_use_n grep go go.work go work edit -go none ! grep go go.work go work edit -go 1.18 cmp go.work go.work.want_go_118 go work edit -dropuse m cmp go.work go.work.want_dropuse_m go work edit -replace=x.1@v1.3.0=y.1@v1.4.0 -replace='x.1@v1.4.0 = ../z' cmp go.work go.work.want_add_replaces go work edit -use n -use ../a -use /b -use c -use c cmp go.work go.work.want_multiuse go work edit -dropuse /b -dropuse n cmp go.work go.work.want_multidropuse go work edit -dropreplace='x.1@v1.4.0' cmp go.work go.work.want_dropreplace go work edit -print -go 1.19 -use b -dropuse c -replace 'x.1@v1.4.0 = ../z' -dropreplace x.1 -dropreplace x.1@v1.3.0 cmp stdout go.work.want_print go work edit -json -go 1.19 -use b -dropuse c -replace 'x.1@v1.4.0 = ../z' -dropreplace x.1 -dropreplace x.1@v1.3.0 cmp stdout go.work.want_json env GOWORK=$GOPATH/src/unformatted go work edit -print -fmt cmp stdout formatted -- m/go.mod -- module m go 1.18 -- go.work.want_initial -- go $goversion use ./m -- go.work.want_use_n -- go $goversion use ( ./m ./n ) -- go.work.want_go_118 -- go 1.18 use ( ./m ./n ) -- go.work.want_dropuse_m -- go 1.18 use ./n -- go.work.want_add_replaces -- go 1.18 use ./n replace ( x.1 v1.3.0 => y.1 v1.4.0 x.1 v1.4.0 => ../z ) -- go.work.want_multiuse -- go 1.18 use ( ../a ./c ./n /b ) replace ( x.1 v1.3.0 => y.1 v1.4.0 x.1 v1.4.0 => ../z ) -- go.work.want_multidropuse -- go 1.18 use ( ../a ./c ) replace ( x.1 v1.3.0 => y.1 v1.4.0 x.1 v1.4.0 => ../z ) -- go.work.want_dropreplace -- go 1.18 use ( ../a ./c ) replace x.1 v1.3.0 => y.1 v1.4.0 -- go.work.want_print -- go 1.19 use ( ../a ./b ) replace x.1 v1.4.0 => ../z -- go.work.want_json -- { "Go": "1.19", "Use": [ { "DiskPath": "../a" }, { "DiskPath": "./b" } ], "Replace": [ { "Old": { "Path": "x.1", "Version": "v1.4.0" }, "New": { "Path": "../z" } } ] } -- unformatted -- go 1.18 use ( a b c ) replace ( x.1 v1.3.0 => y.1 v1.4.0 x.1 v1.4.0 => ../z ) -- formatted -- go 1.18 use ( a b c ) replace ( x.1 v1.3.0 => y.1 v1.4.0 x.1 v1.4.0 => ../z )