import (
"os"
- "path"
"strconv"
"time"
)
}
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))
+ tmp, err := os.CreateTemp(dir, prefix)
+ if err != nil {
+ return nil, err
+ }
+ err = os.Chmod(tmp.Name(), os.FileMode(0666&^UmaskCur))
+ if err != nil {
+ tmp.Close()
+ return nil, err
+ }
+ return tmp, nil
}