func InitialSync() { cfg := utils.GetConfig() log.Info("Verifying DB Tables") datastore.CreateDB() log.Info("Initial sync starting...") for key, listener := range cfg.Listeners { // First check to see if the table is empty and do a full import false == not empty if datastore.CheckEmpty(key) == false { // Database is not empty so pull the updates and match locally items := datastore.FetchAll(key) handleDataChanges(items, listener, key) } else { // Database is empty so lets import fsItems := utils.ListFilesInDir(listener.Directory) for _, item := range fsItems { success := datastore.Insert(key, item) if success != true { log.Infof("An error occurred inserting %x to database", item) } if !item.IsDir { storage.PutFile(item.Filename, key) } } } } log.Info("Initial sync completed...") }
func runFileCreateUpdate(base_path, path, operation string) bool { listener := utils.GetListenerFromDir(base_path) rel_path := utils.GetRelativePath(listener, path) fsItem, err := utils.GetFileInfo(path) if err != nil { log.Infof("Error getting file details for %s: %+v", path, err) } log.Infof("Putting in storage:-> %s", rel_path) storage.PutFile(path, listener) log.Infof("Creating/Updating:-> %s", rel_path) return datastore.Insert(listener, fsItem) }