GoDoxy/internal/watcher/config_file_watcher.go
2025-01-01 06:07:32 +08:00

25 lines
567 B
Go

package watcher
import (
"sync"
"github.com/yusing/go-proxy/internal/common"
"github.com/yusing/go-proxy/internal/task"
)
var (
configDirWatcher *DirWatcher
configDirWatcherMu sync.Mutex
)
// create a new file watcher for file under ConfigBasePath.
func NewConfigFileWatcher(filename string) Watcher {
configDirWatcherMu.Lock()
defer configDirWatcherMu.Unlock()
if configDirWatcher == nil {
t := task.RootTask("config_dir_watcher", false)
configDirWatcher = NewDirectoryWatcher(t, common.ConfigBasePath)
}
return configDirWatcher.Add(filename)
}