MCPcopy
hub / github.com/helm/helm / AtomicWriteFile

Function AtomicWriteFile

internal/fileutil/fileutil.go:29–50  ·  view source on GitHub ↗

AtomicWriteFile atomically (as atomic as os.Rename allows) writes a file to a disk.

(filename string, reader io.Reader, mode os.FileMode)

Source from the content-addressed store, hash-verified

27// AtomicWriteFile atomically (as atomic as os.Rename allows) writes a file to a
28// disk.
29func AtomicWriteFile(filename string, reader io.Reader, mode os.FileMode) error {
30 tempFile, err := os.CreateTemp(filepath.Split(filename))
31 if err != nil {
32 return err
33 }
34 tempName := tempFile.Name()
35
36 if _, err := io.Copy(tempFile, reader); err != nil {
37 tempFile.Close() // return value is ignored as we are already on error path
38 return err
39 }
40
41 if err := tempFile.Close(); err != nil {
42 return err
43 }
44
45 if err := os.Chmod(tempName, mode); err != nil {
46 return err
47 }
48
49 return fs.RenameWithFallback(tempName, filename)
50}

Callers 10

PutMethod · 0.92
WriteFileMethod · 0.92
WriteJSONFileMethod · 0.92
DownloadIndexFileMethod · 0.92
TestAtomicWriteFileFunction · 0.85
PlatformAtomicWriteFileFunction · 0.85
PlatformAtomicWriteFileFunction · 0.85

Calls 4

RenameWithFallbackFunction · 0.92
CopyMethod · 0.80
CloseMethod · 0.80
NameMethod · 0.65

Used in the wild real call sites across dependent graphs

searching dependent graphs…