mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Replace bash release helper scripts with Go progam
This commit is contained in:
79
cmd/gorepomod/internal/mod/module.go
Normal file
79
cmd/gorepomod/internal/mod/module.go
Normal file
@@ -0,0 +1,79 @@
|
||||
package mod
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
|
||||
"golang.org/x/mod/modfile"
|
||||
"sigs.k8s.io/kustomize/cmd/gorepomod/internal/misc"
|
||||
"sigs.k8s.io/kustomize/cmd/gorepomod/internal/semver"
|
||||
)
|
||||
|
||||
// Module is an immutable representation of a Go module.
|
||||
type Module struct {
|
||||
repo misc.LaRepository
|
||||
shortName misc.ModuleShortName
|
||||
mf *modfile.File
|
||||
vLocal semver.SemVer
|
||||
vRemote semver.SemVer
|
||||
}
|
||||
|
||||
func New(
|
||||
repo misc.LaRepository,
|
||||
shortName misc.ModuleShortName,
|
||||
mf *modfile.File,
|
||||
vl semver.SemVer,
|
||||
vr semver.SemVer) *Module {
|
||||
return &Module{
|
||||
repo: repo,
|
||||
shortName: shortName,
|
||||
mf: mf,
|
||||
vLocal: vl,
|
||||
vRemote: vr,
|
||||
}
|
||||
}
|
||||
|
||||
func (m *Module) GitRepo() misc.LaRepository {
|
||||
return m.repo
|
||||
}
|
||||
|
||||
func (m *Module) VersionLocal() semver.SemVer {
|
||||
return m.vLocal
|
||||
}
|
||||
|
||||
func (m *Module) VersionRemote() semver.SemVer {
|
||||
return m.vRemote
|
||||
}
|
||||
|
||||
func (m *Module) ShortName() misc.ModuleShortName {
|
||||
return m.shortName
|
||||
}
|
||||
|
||||
func (m *Module) ImportPath() string {
|
||||
return filepath.Join(m.repo.RepoPath(), string(m.ShortName()))
|
||||
}
|
||||
|
||||
func (m *Module) AbsPath() string {
|
||||
return filepath.Join(m.repo.AbsPath(), string(m.ShortName()))
|
||||
}
|
||||
|
||||
func (m *Module) DependsOn(target misc.LaModule) (bool, semver.SemVer) {
|
||||
for _, r := range m.mf.Require {
|
||||
if r.Mod.Path == target.ImportPath() {
|
||||
v, err := semver.Parse(r.Mod.Version)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return true, v
|
||||
}
|
||||
}
|
||||
return false, semver.Zero()
|
||||
}
|
||||
|
||||
func (m *Module) GetReplacements() (result []string) {
|
||||
for _, r := range m.mf.Replace {
|
||||
result = append(
|
||||
result, fmt.Sprintf("%s => %s", r.Old.String(), r.New.String()))
|
||||
}
|
||||
return
|
||||
}
|
||||
1
cmd/gorepomod/internal/mod/module_test.go
Normal file
1
cmd/gorepomod/internal/mod/module_test.go
Normal file
@@ -0,0 +1 @@
|
||||
package mod_test
|
||||
Reference in New Issue
Block a user