diff --git a/fs/fs.go b/fs/fs.go new file mode 100644 index 0000000..88cb0ab --- /dev/null +++ b/fs/fs.go @@ -0,0 +1,19 @@ +package fs + +import ( + "os" +) + +func IsExist(path string) bool { + _, err := os.Stat(path) + return err == nil +} + +func IsDir(path string) bool { + file, err := os.Stat(path) + if err != nil { + return false + } + + return file.IsDir() +} diff --git a/fs/temps.go b/fs/temps.go new file mode 100644 index 0000000..3898e9b --- /dev/null +++ b/fs/temps.go @@ -0,0 +1,37 @@ +package fs + +import ( + "io/ioutil" + "os" +) + +func TempFileWithText(text string) (*os.File, error) { + return TempFile([]byte(text)) +} + +func TempFilenameWithText(text string) (string, error) { + tmpfile, err := TempFileWithText(text) + if err != nil { + return "", err + } + + filename := tmpfile.Name() + if err = tmpfile.Close(); err != nil { + return "", err + } + + return filename, nil +} + +func TempFile(data []byte) (*os.File, error) { + tmpfile, err := ioutil.TempFile(os.TempDir(), "tmp*") + if err != nil { + return nil, err + } + + if err := ioutil.WriteFile(tmpfile.Name(), data, os.ModeTemporary); err != nil { + return nil, err + } + + return tmpfile, nil +}