All checks were successful
		
		
	
	ci/woodpecker/push/woodpecker Pipeline was successful
				
			
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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)
 | |
|   }
 | |
| }
 |