]> Cypherpunks.ru repositories - gocheese.git/blobdiff - tmp.go
Split pretty huge gocheese.go
[gocheese.git] / tmp.go
diff --git a/tmp.go b/tmp.go
deleted file mode 100644 (file)
index 70d3f11..0000000
--- a/tmp.go
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-GoCheese -- Python private package repository and caching proxy
-Copyright (C) 2019 Sergey Matveev <stargrave@stargrave.org>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, version 3 of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package main
-
-import (
-       "os"
-       "path/filepath"
-       "strconv"
-       "time"
-)
-
-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)
-       name := filepath.Join(dir, "nncp"+suffix)
-       return os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, os.FileMode(0666))
-}
-
-func DirSync(dirPath string) error {
-       fd, err := os.Open(dirPath)
-       if err != nil {
-               return err
-       }
-       err = fd.Sync()
-       if err != nil {
-               fd.Close()
-               return err
-       }
-       return fd.Close()
-}
-
-func WriteFileSync(dirPath, filePath string, data []byte) error {
-       dst, err := TempFile(dirPath)
-       if err != nil {
-               return err
-       }
-       if _, err = dst.Write(data); err != nil {
-               os.Remove(dst.Name())
-               dst.Close()
-               return err
-       }
-       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 {
-               return err
-       }
-       return DirSync(dirPath)
-}