package main

import (
	"os"
	"path/filepath"
	"strings"
)

func emptyDir(p string) {
	files, err := os.ReadDir(p)
	if err != nil && strings.Contains(err.Error(), "Access is denied") {
		remindErr(err)
		return
	}

	PanicErr(err)

	defer func() {
		remainFiles, e := os.ReadDir(p)
		PanicErr(e)

		if len(remainFiles) == 0 {
			e = Rm(p)
			remindErr(e)
		}
	}()

	for _, file := range files {
		filePath := filepath.Join(p, file.Name())
		if !file.IsDir() {
			if strings.HasPrefix(file.Name(), "._") && IsMacMetaFile(filePath) {
				err = Rm(filePath)
				remindErr(err)
			} else if file.Name() == ".DS_Store" {
				err = Rm(filePath)
				remindErr(err)
			}

			continue
		}

		emptyDir(filePath)
	}
}