From b2eef1c806af5802089517b8c86abc65edfe574d Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 23 Nov 2020 13:36:51 +0300 Subject: [PATCH] Move temporary files related code out --- run.go | 11 ----------- tmp.go | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 tmp.go diff --git a/run.go b/run.go index 6a38d5a..e40ad1d 100644 --- a/run.go +++ b/run.go @@ -29,7 +29,6 @@ import ( "os" "os/exec" "path" - "strconv" "strings" "sync" "syscall" @@ -102,16 +101,6 @@ func mkdirs(pth string) error { return os.MkdirAll(pth, os.FileMode(0777)) } -func tempsuffix() string { - return strconv.FormatInt((time.Now().UnixNano()+int64(os.Getpid()))&0xFFFFFFFF, 16) -} - -func tempfile(dir, prefix string) (*os.File, error) { - // It respects umask, unlike ioutil.TempFile - name := path.Join(dir, TmpPrefix+prefix+"."+tempsuffix()) - return os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, os.FileMode(0666)) -} - func isModified(cwd, redoDir, tgt string) (bool, string, error) { fdDep, err := os.Open(path.Join(redoDir, tgt+DepSuffix)) if err != nil { diff --git a/tmp.go b/tmp.go new file mode 100644 index 0000000..1db00f6 --- /dev/null +++ b/tmp.go @@ -0,0 +1,37 @@ +/* +goredo -- redo implementation on pure Go +Copyright (C) 2020 Sergey Matveev + +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 . +*/ + +// Temporary files + +package main + +import ( + "os" + "path" + "strconv" + "time" +) + +func tempsuffix() string { + return strconv.FormatInt((time.Now().UnixNano()+int64(os.Getpid()))&0xFFFFFFFF, 16) +} + +func tempfile(dir, prefix string) (*os.File, error) { + // It respects umask, unlike ioutil.TempFile + name := path.Join(dir, TmpPrefix+prefix+"."+tempsuffix()) + return os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, os.FileMode(0666)) +} -- 2.44.0