Automatically create/delete directories around file creation/removal

This commit is contained in:
2013-08-14 22:59:40 -04:00
parent ccb35fc7a6
commit 6f72225b5b
2 changed files with 26 additions and 3 deletions

View File

@ -11,11 +11,16 @@ import (
func EnsureDirExists(dir string) error {
_, err := os.Lstat(dir)
if err != nil {
fi, err := os.Lstat(path.Dir(dir))
var fi os.FileInfo
curDir := dir
for dir != "" && err != nil {
curDir = path.Dir(curDir)
fi, err = os.Lstat(curDir)
}
if err != nil {
return err
}
err = os.Mkdir(dir, fi.Mode().Perm())
err = os.MkdirAll(dir, fi.Mode().Perm())
if err != nil {
return err
}
@ -23,6 +28,16 @@ func EnsureDirExists(dir string) error {
return nil
}
//TODO maybe this shouldn't fail silently?
func RecursiveRemoveEmptyDirs(dir string) {
var err error = nil
curDir := dir
for err == nil {
err = os.Remove(curDir)
curDir = path.Dir(curDir)
}
}
func CopyToTmp(src string, tmpdir string) (string, error) {
infile, err := os.Open(src)
if err != nil {