MCPcopy Create free account
hub / github.com/chainreactors/EvilProxy / atomicWriteFile

Function atomicWriteFile

internal/managementasset/updater.go:416–445  ·  view source on GitHub ↗
(path string, data []byte)

Source from the content-addressed store, hash-verified

414}
415
416func atomicWriteFile(path string, data []byte) error {
417 tmpFile, err := os.CreateTemp(filepath.Dir(path), "management-*.html")
418 if err != nil {
419 return err
420 }
421
422 tmpName := tmpFile.Name()
423 defer func() {
424 _ = tmpFile.Close()
425 _ = os.Remove(tmpName)
426 }()
427
428 if _, err = tmpFile.Write(data); err != nil {
429 return err
430 }
431
432 if err = tmpFile.Chmod(0o644); err != nil {
433 return err
434 }
435
436 if err = tmpFile.Close(); err != nil {
437 return err
438 }
439
440 if err = os.Rename(tmpName, path); err != nil {
441 return err
442 }
443
444 return nil
445}
446
447func parseDigest(digest string) string {
448 digest = strings.TrimSpace(digest)

Callers 2

Calls 4

RemoveMethod · 0.80
NameMethod · 0.65
CloseMethod · 0.65
WriteMethod · 0.45

Tested by

no test coverage detected