Skip to content

Commit 2da59f2

Browse files
committed
all: rely on umask when creating files and directories
That is, create directories with permission bits 0o777 and files with permission bits 0o666, and let the user's umask setting decide whether groups and other users should also have access. This is pretty common in Go, and works as best as can be expected on all platforms including Windows. We fix all code except the copied golangorgx gopls code. Signed-off-by: Daniel Martí <[email protected]> Change-Id: I306613b35caab7d8ac8db2ec05a856802b1eb08b Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1200569 TryBot-Result: CUEcueckoo <[email protected]> Unity-Result: CUE porcuepine <[email protected]> Reviewed-by: Matthew Sackman <[email protected]>
1 parent d20e479 commit 2da59f2

File tree

17 files changed

+24
-24
lines changed

17 files changed

+24
-24
lines changed

cmd/cue/cmd/add.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ func (fo *originalFile) restore() error {
202202
if len(fo.contents) == 0 {
203203
return os.Remove(fo.filename)
204204
}
205-
return os.WriteFile(fo.filename, fo.contents, 0644)
205+
return os.WriteFile(fo.filename, fo.contents, 0666)
206206
}
207207

208208
type fileInfo struct {
@@ -287,7 +287,7 @@ func (fi *fileInfo) appendAndCheck() (fo originalFile, err error) {
287287
return originalFile{}, err
288288
}
289289

290-
if err = os.WriteFile(fi.filename, b, 0644); err != nil {
290+
if err = os.WriteFile(fi.filename, b, 0666); err != nil {
291291
// Just in case, attempt to restore original file.
292292
_ = fo.restore()
293293
return originalFile{}, err

cmd/cue/cmd/fix.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func runFixAll(cmd *Command, args []string) error {
104104
return err
105105
}
106106
} else {
107-
if err := os.WriteFile(f.Filename, b, 0644); err != nil {
107+
if err := os.WriteFile(f.Filename, b, 0666); err != nil {
108108
errs = errors.Append(errs, errors.Promote(err, "write"))
109109
}
110110
}

cmd/cue/cmd/fmt.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ func formatFile(file *build.File, opts []format.Option, doDiff, check bool, cmd
223223
case file.Filename == "-":
224224
// already wrote the formatted source to stdout above
225225
default:
226-
if err := os.WriteFile(file.Filename, formatted, 0644); err != nil {
226+
if err := os.WriteFile(file.Filename, formatted, 0666); err != nil {
227227
return false, err
228228
}
229229
}

cmd/cue/cmd/import.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -496,8 +496,8 @@ func writeFile(p *buildPlan, f *ast.File, cueFile string) error {
496496
_, err := p.cmd.OutOrStdout().Write(b)
497497
return err
498498
}
499-
_ = os.MkdirAll(filepath.Dir(cueFile), 0755)
500-
return os.WriteFile(cueFile, b, 0644)
499+
_ = os.MkdirAll(filepath.Dir(cueFile), 0777)
500+
return os.WriteFile(cueFile, b, 0666)
501501
}
502502

503503
type hoister struct {

cmd/cue/cmd/modinit.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func runModInit(cmd *Command, args []string) (err error) {
8484
return err
8585
}
8686

87-
err = os.Mkdir(mod, 0755)
87+
err = os.Mkdir(mod, 0777)
8888
if err != nil && !os.IsExist(err) {
8989
return err
9090
}
@@ -97,10 +97,10 @@ func runModInit(cmd *Command, args []string) (err error) {
9797
return err
9898
}
9999

100-
if err = os.Mkdir(filepath.Join(mod, "usr"), 0755); err != nil {
100+
if err = os.Mkdir(filepath.Join(mod, "usr"), 0777); err != nil {
101101
return err
102102
}
103-
if err = os.Mkdir(filepath.Join(mod, "pkg"), 0755); err != nil {
103+
if err = os.Mkdir(filepath.Join(mod, "pkg"), 0777); err != nil {
104104
return err
105105
}
106106

cmd/cue/cmd/trim.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ func runTrim(cmd *Command, args []string) error {
181181
filename = dst
182182
}
183183

184-
err = os.WriteFile(filename, b, 0644)
184+
err = os.WriteFile(filename, b, 0666)
185185
if err != nil {
186186
return err
187187
}

cue/interpreter/wasm/wasm_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ func check(t *testing.T, dir string, got string) {
117117
golden := filepath.Join("testdata", dir) + ".golden"
118118

119119
if cuetest.UpdateGoldenFiles {
120-
os.WriteFile(golden, []byte(got), 0644)
120+
os.WriteFile(golden, []byte(got), 0666)
121121
}
122122

123123
want := string(must(os.ReadFile(golden))(t))

cue/load/loader_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ package %s
731731
732732
x: 1
733733
`, string(c))
734-
err := os.WriteFile(filepath.Join(testDir, string(c)+".cue"), []byte(contents), 0o644)
734+
err := os.WriteFile(filepath.Join(testDir, string(c)+".cue"), []byte(contents), 0o666)
735735
qt.Assert(t, qt.IsNil(err))
736736
}
737737

cue/testdata/gen.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ func (e *extractor) extractTest(x *ast.CompositeLit) {
259259

260260
e.a.Comment = e.header.Bytes()
261261

262-
_ = os.Mkdir(e.dir, 0755)
262+
_ = os.Mkdir(e.dir, 0777)
263263

264264
name := fmt.Sprintf("%03d", e.count)
265265
if e.name != "" {
@@ -268,7 +268,7 @@ func (e *extractor) extractTest(x *ast.CompositeLit) {
268268
name = strings.ReplaceAll(name, " ", "_")
269269
name = strings.ReplaceAll(name, ":", "_")
270270
filename := filepath.Join(e.dir, name+".txtar")
271-
err := os.WriteFile(filename, txtar.Format(e.a), 0644)
271+
err := os.WriteFile(filename, txtar.Format(e.a), 0666)
272272
if err != nil {
273273
e.fatalf("Could not write file: %v", err)
274274
}

encoding/gocode/testdata/gen.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func main() {
5858
}
5959

6060
goFile := filepath.Join("testdata", d.Name(), "cue_gen.go")
61-
if err := os.WriteFile(goFile, b, 0644); err != nil {
61+
if err := os.WriteFile(goFile, b, 0666); err != nil {
6262
log.Fatal(err)
6363
}
6464
}

encoding/openapi/decode_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func TestDecode(t *testing.T) {
110110
if cuetest.UpdateGoldenFiles {
111111
a.Files[outIndex].Data = b
112112
b = txtar.Format(a)
113-
err = os.WriteFile(fullpath, b, 0644)
113+
err = os.WriteFile(fullpath, b, 0666)
114114
if err != nil {
115115
t.Fatal(err)
116116
}

encoding/openapi/openapi_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ func TestParseDefinitions(t *testing.T) {
251251

252252
wantFile := filepath.Join("testdata", tc.out)
253253
if cuetest.UpdateGoldenFiles {
254-
_ = os.WriteFile(wantFile, out.Bytes(), 0644)
254+
_ = os.WriteFile(wantFile, out.Bytes(), 0666)
255255
return
256256
}
257257

encoding/protobuf/protobuf_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func TestExtractDefinitions(t *testing.T) {
5757

5858
wantFile := filepath.Join("testdata", filepath.Base(file)+".out.cue")
5959
if cuetest.UpdateGoldenFiles {
60-
_ = os.WriteFile(wantFile, out.Bytes(), 0644)
60+
_ = os.WriteFile(wantFile, out.Bytes(), 0666)
6161
return
6262
}
6363

@@ -102,8 +102,8 @@ func TestBuild(t *testing.T) {
102102
if err != nil {
103103
t.Fatal(err)
104104
}
105-
_ = os.MkdirAll(filepath.Dir(f.Filename), 0755)
106-
err = os.WriteFile(f.Filename, b, 0644)
105+
_ = os.MkdirAll(filepath.Dir(f.Filename), 0777)
106+
err = os.WriteFile(f.Filename, b, 0666)
107107
if err != nil {
108108
t.Fatal(err)
109109
}

internal/core/adt/debug.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func OpenNodeGraph(title, path, code, out, graph string) {
6868
}
6969
numberOpened++
7070

71-
err := os.MkdirAll(path, 0755)
71+
err := os.MkdirAll(path, 0777)
7272
if err != nil {
7373
log.Fatal(err)
7474
}

internal/encoding/encoder.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ func writer(f *build.File, cfg *Config) (_ io.Writer, close func() error, err er
310310
// Swap O_EXCL for O_TRUNC to allow replacing an entire existing file.
311311
mode = os.O_WRONLY | os.O_CREATE | os.O_TRUNC
312312
}
313-
f, err := os.OpenFile(path, mode, 0o644)
313+
f, err := os.OpenFile(path, mode, 0o666)
314314
if err != nil {
315315
if errors.Is(err, fs.ErrExist) {
316316
return errors.Wrapf(fs.ErrExist, token.NoPos, "error writing %q", path)

internal/encoding/yaml/decode_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -971,7 +971,7 @@ func TestFiles(t *testing.T) {
971971
}
972972
got := cueStr(expr)
973973
if cuetest.UpdateGoldenFiles {
974-
os.WriteFile(filename, []byte(got), 0644)
974+
os.WriteFile(filename, []byte(got), 0666)
975975
return
976976
}
977977
b, err := os.ReadFile(filename)

pkg/qgo.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ func extract(args []string) {
155155
if err != nil {
156156
log.Fatal(err)
157157
}
158-
err = os.WriteFile(lastPkg+".go", b, 0644)
158+
err = os.WriteFile(lastPkg+".go", b, 0666)
159159
if err != nil {
160160
log.Fatal(err)
161161
}

0 commit comments

Comments
 (0)