z_mirror/fmm
git clone https://git.raiguard.me/z_mirror/fmm
b5604e1
updating
1package cli 2 3import ( 4"fmt" 5"os" 6"strings" 7 8 fmm"github.com/raiguard/fmm/lib" 9) 10 11func abort (msg ... any ) { 12errorln (msg ... ) 13os .Exit (1 ) 14} 15 16func errorln (msg ... any ) { 17fmt .Fprintln (os .Stderr ,msg ... ) 18} 19 20func errorf (format string ,msg ... any ) { 21fmt .Fprintf (os .Stderr ,format ,msg ... ) 22} 23 24func printUsage (msg ... any ) { 25if len (msg )> 0 { 26errorln (msg ... ) 27 } 28errorln (usageStr ) 29os .Exit (1 ) 30} 31 32func getMods (args []string ) []fmm.ModIdent { 33var mods []fmm.ModIdent 34 35for _ ,input := range args { 36var thisMods []fmm.ModIdent 37var err error 38if strings .HasSuffix (input ,".zip" ) { 39thisMods ,err = fmm .ParseSaveFile (input ) 40 }else if strings .HasSuffix (input ,".log" ) { 41thisMods = fmm .ParseLogFile (input ) 42 }else if strings .HasSuffix (input ,".json" ) { 43var mlj * fmm.ModListJson 44mlj ,err = fmm .ParseModListJson (input ) 45if mlj != nil { 46for _ ,mod := range mlj .Mods { 47thisMods = append (thisMods , fmm.ModIdent {Name :mod .Name ,Version :mod .Version }) 48 } 49 } 50 }else if strings .HasPrefix (input ,"!" ) { 51// TODO: Mod set 52 }else { 53thisMods = append (thisMods ,fmm .NewModIdent (input )) 54 } 55if err != nil { 56fmt .Println (err ) 57continue 58 } 59mods = append (mods ,thisMods ... ) 60 } 61 62return mods 63}