X-Git-Url: http://www.git.cypherpunks.ru/?p=gocheese.git;a=blobdiff_plain;f=fileutils.go;h=03b852e011a2e9cbfcbd2af84e9fe3fd78f62f0f;hp=ba18ee98769217a7758caba5f7061a024b200aa8;hb=37facf3dde161d2df4d430896dc87ebb5740cc64;hpb=3888c28bc312e27a1696cc2988f7903c5135fba1 diff --git a/fileutils.go b/fileutils.go index ba18ee9..03b852e 100644 --- a/fileutils.go +++ b/fileutils.go @@ -24,6 +24,8 @@ import ( "time" ) +var NoSync = os.Getenv("GOCHEESE_NO_SYNC") == "1" + func TempFile(dir string) (*os.File, error) { // Assume that probability of suffix collision is negligible suffix := strconv.FormatInt(time.Now().UnixNano()+int64(os.Getpid()), 16) @@ -32,6 +34,9 @@ func TempFile(dir string) (*os.File, error) { } func DirSync(dirPath string) error { + if NoSync { + return nil + } fd, err := os.Open(dirPath) if err != nil { return err @@ -54,10 +59,12 @@ func WriteFileSync(dirPath, filePath string, data []byte) error { dst.Close() return err } - if err = dst.Sync(); err != nil { - os.Remove(dst.Name()) - dst.Close() - return err + if !NoSync { + if err = dst.Sync(); err != nil { + os.Remove(dst.Name()) + dst.Close() + return err + } } dst.Close() if err = os.Rename(dst.Name(), filePath); err != nil {