func main() { watchDir, targetDir := "tmp/source", "tmp/target" godotenv.Load(".env") fm, err := fm.NewFM("mms_prod") if err != nil { panic(err) } defer fm.Destroy() fm.Watch(watchDir, targetDir) c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) signal.Notify(c, syscall.SIGTERM) go func() { <-c fmt.Println("Bye Bye") fm.Destroy() os.Exit(0) }() quit := make(chan bool, 1) /* for { fmt.Println("sleeping...") time.Sleep(10 * time.Second) // or runtime.Gosched() or similar per @misterbee } */ <-quit }
target: 'tmp/target2' `, } for _, datum := range data { file, err := ioutil.TempFile("/tmp", "file_manager") if err != nil { Fail(fmt.Sprintf("Unable to create temp config file: %v", err)) } if _, err = file.WriteString(datum); err != nil { Fail(fmt.Sprintf("Unable to write to temp config file: %v", err)) } dropDB() fileManager, err = fm.NewFM(dbName, file.Name()) if fileManager != nil { defer func() { fileManager.Destroy() fileManager = nil }() } os.Remove(file.Name()) Ω(fileManager).Should(BeNil()) Ω(err).Should(HaveOccurred()) } }) It("must watch directories from config", func() {