z_mirror/fmm

git clone https://git.raiguard.me/z_mirror/fmm

Caleb HeuerAdd sync with info.json filesb5604e1

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