z_mirror/fmm

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

Caleb HeuerUpdate to Go 1.2155d7e4d

trunk
673 B35 linesraw
1package fmm
2
3type Mod struct {
4	Name       string
5	Enabled    *Version
6	releases   []*Release
7	isInternal bool
8}
9
10func (m *Mod) GetLatestRelease() *Release {
11	return m.releases[len(m.releases)-1]
12}
13
14func (m *Mod) GetRelease(version *Version) *Release {
15	if version == nil {
16		return m.GetLatestRelease()
17	}
18	return m.GetMatchingRelease(&Dependency{
19		m.Name,
20		version,
21		DependencyRequired,
22		VersionEq,
23	})
24}
25
26func (m *Mod) GetMatchingRelease(dep *Dependency) *Release {
27	// Iterate in reverse to get the newest version first
28	for i := len(m.releases) - 1; i >= 0; i-- {
29		release := m.releases[i]
30		if dep.Test(&release.Version) {
31			return release
32		}
33	}
34	return nil
35}