package util import ( "encoding/json" "fmt" "io/ioutil" "luxshare-daily-report/global" "luxshare-daily-report/model" "net/http" "github.com/fsnotify/fsnotify" log "github.com/sirupsen/logrus" ) // // ListeningDirectory // @Description: 监听目录 // @param path 目录路径 // func ListeningDirectory(path string) { //创建一个监控对象 watch, err := fsnotify.NewWatcher() if err != nil { log.Fatal(err) } defer watch.Close() //添加要监控的对象,文件或文件夹 err = watch.Add(path) if err != nil { log.Fatal(err) } //我们另启一个goroutine来处理监控对象的事件 go func() { for { select { case ev := <-watch.Events: { //判断事件发生的类型,如下5种 // Create 创建 // Write 写入 // Remove 删除 // Rename 重命名 // Chmod 修改权限 if ev.Op&fsnotify.Create == fsnotify.Create { log.Println("创建文件 : ", ev.Name) } if ev.Op&fsnotify.Write == fsnotify.Write { log.Println("写入文件 : ", ev.Name) } if ev.Op&fsnotify.Remove == fsnotify.Remove { log.Println("删除文件 : ", ev.Name) } if ev.Op&fsnotify.Rename == fsnotify.Rename { log.Println("重命名文件 : ", ev.Name) } if ev.Op&fsnotify.Chmod == fsnotify.Chmod { log.Println("修改权限 : ", ev.Name) } } case err := <-watch.Errors: { log.Println("error : ", err) return } } } }() //循环 select {} } // // Send // @Description: bark通知 // @param msg // func Send(msg string) { favicon := "https://m.luxshare-ict.com/favicon.ico" if global.GLO_CONFIG.BarkUrl == "" { log.Printf("[ERROR] bark url is empty!!!") return } getUrl := fmt.Sprintf("%s/KSAT MRSB Serve/%s?icon=%s", global.GLO_CONFIG.BarkUrl, msg, favicon) resp, err := http.Get(getUrl) defer resp.Body.Close() if err != nil { log.Printf("[ERROR] Send to bark err: %v", err) return } body, _ := ioutil.ReadAll(resp.Body) var barkResp model.BarkResp if err = json.Unmarshal(body, &barkResp); err != nil { log.Printf("[ERROR] bark unmarshal err: %v", err) return } log.Printf("[INFO] Send to bark success") }