z_mirror/fmm
git clone https://git.raiguard.me/z_mirror/fmm
b5f7331
predep-parsing
1package main 2 3import ( 4"fmt" 5"os" 6 7"github.com/vaughan0/go-ini" 8) 9 10func abort (msg ... any ) { 11errorln (msg ... ) 12os .Exit (1 ) 13} 14 15func errorln (msg ... any ) { 16fmt .Fprintln (os .Stderr ,msg ... ) 17} 18 19func errorf (format string ,msg ... any ) { 20fmt .Fprintf (os .Stderr ,format ,msg ... ) 21} 22 23func getFromEnvOrConfig (env string ,file ini.File ,section string ,key string )string { 24if value := os .Getenv (env );value != "" { 25return value 26 }else if value ,ok := file .Get (section ,key );ok { 27return value 28 } 29return "" 30} 31 32func parseConfig (path string )error { 33file ,err := ini .LoadFile (path ) 34if err != nil { 35return err 36 } 37 38if dir ,ok := file .Get ("" ,"mods_dir" );ok { 39modsDir = dir 40 } 41 42apiKey = getFromEnvOrConfig ("FACTORIO_API_KEY" ,file ,"portal" ,"api_key" ) 43downloadToken = getFromEnvOrConfig ("FACTORIO_TOKEN" ,file ,"portal" ,"token" ) 44downloadUsername = getFromEnvOrConfig ("FACTORIO_USERNAME" ,file ,"portal" ,"username" ) 45 46return nil 47}