package crawler_manager

import (
	"io/ioutil"
	"os"
	"strconv"
)

func existConfigFile(prePath string, dir string) bool {

	files, _ := ioutil.ReadDir(prePath + "/" + dir)

	for _, file := range files {

		if file.IsDir() {
			retB := existConfigFile(prePath+"/"+dir, file.Name())
			if retB {
				return true
			}
		} else {
			return true
		}

	}
	return false
}

func existConfigFileDir(prePath string, dir string, configCrawler *[]string) {

	files, _ := ioutil.ReadDir(prePath + "/" + dir)

	for _, file := range files {

		if file.IsDir() {
			existConfigFileDir(prePath+"/"+dir, file.Name(), configCrawler)
		} else {
			*configCrawler = append(*configCrawler, prePath+"/"+dir)
			return
		}

	}
}

func getRunCommand(container *string) string {
	return GetInstance().ConfigMgr.GetGlobalConfig().Paths.BinaryFolder + "/" + *container + "/" + GetInstance().ConfigMgr.GetGlobalConfig().Paths.ScriptFile
}

func writePid(pid int) {
	ioutil.WriteFile(GetInstance().ConfigMgr.GetGlobalConfig().Paths.PidFolder+strconv.Itoa(pid), []byte(""), os.ModePerm)
}

func getConfigPaths(container *string) *[]string {

	var dirs []string
	existConfigFileDir(GetInstance().ConfigMgr.GetGlobalConfig().Paths.ConfigFolder, *container, &dirs)

	return &dirs
}
