z_mirror/fmm
git clone https://git.raiguard.me/z_mirror/fmm
27d8943
updating
1package fmm 2 3import ( 4"strings" 5) 6 7// A small representation of a mod, with an optional version. 8type ModIdent struct { 9Name string 10Version * Version 11} 12 13// Returns a ModIdent parsed from an input string with the format of 'name', 14// 'name_version', or 'name_version.zip'. 15func NewModIdent (input string )ModIdent { 16input = strings .TrimSuffix (input ,".zip" ) 17parts := strings .Split (input ,"_" ) 18if len (parts )== 1 { 19return ModIdent {input ,nil } 20 } 21 22name := strings .Join (parts [:len (parts )- 1 ],"_" ) 23version ,err := NewVersion (parts [len (parts )- 1 ]) 24if err != nil { 25return ModIdent {input ,nil } 26 } 27return ModIdent {name ,version } 28} 29 30// Returns a string in the format of 'name' or 'name_version'. 31func (i * ModIdent )ToString ()string { 32if i .Version != nil { 33return i .Name + " " + i .Version .ToString (false ) 34 } 35return i .Name 36}