cmd: Ignore hidden files in isEmpty

This commit is contained in:
Albert Nigmatzianov 2017-07-18 18:22:37 +02:00
parent d994347eda
commit 715f41bd7a
1 changed files with 22 additions and 12 deletions

View File

@ -45,24 +45,34 @@ func er(msg interface{}) {
} }
// isEmpty checks if a given path is empty. // isEmpty checks if a given path is empty.
// Hidden files in path are ignored.
func isEmpty(path string) bool { func isEmpty(path string) bool {
fi, err := os.Stat(path) fi, err := os.Stat(path)
if err != nil { if err != nil {
er(err) er(err)
} }
if fi.IsDir() {
f, err := os.Open(path) if !fi.IsDir() {
if err != nil { return fi.Size() == 0
er(err)
}
defer f.Close()
dirs, err := f.Readdirnames(1)
if err != nil && err != io.EOF {
er(err)
}
return len(dirs) == 0
} }
return fi.Size() == 0
f, err := os.Open(path)
if err != nil {
er(err)
}
defer f.Close()
names, err := f.Readdirnames(-1)
if err != nil && err != io.EOF {
er(err)
}
for _, name := range names {
if len(name) > 0 && name[0] != '.' {
return false
}
}
return true
} }
// exists checks if a file or directory exists. // exists checks if a file or directory exists.