package main import ( "log" "path/filepath" "time" "github.com/spf13/viper" "git.metaunix.net/BitGoblin/adept/config" "git.metaunix.net/BitGoblin/adept/transcoder" "git.metaunix.net/BitGoblin/adept/util" ) func main() { config.LoadConfig() r := transcoder.NewRepository(viper.GetString("transcoder.repository")) // main program loop - runs infinitely until externally terminated for { ingestFiles := r.SearchIngest() if len(ingestFiles) < 1 { log.Println("There were no files found in ingest to transcode; skipping run.") } else { for _, i := range ingestFiles { // check if the file is open in another program (e.g. still being written to) if util.IsFileLocked(filepath.Join(viper.GetString("transcoder.repository"), "ingest", i.Name())) { log.Printf("%s appears to be open in another program; skipping it for this run.", i.Name()) continue } // archive file r.ArchiveFile(i.Name()) // transcode file transcoder.Transcode(i.Name()) // clean up source file r.CleanupFile(i.Name()) } } // sleep for X minutes - specified in the adept.toml config file interval := viper.GetInt("transcoder.interval") time.Sleep(time.Duration(interval) * time.Minute) } }