Convert between Lock & Dependency using shared fns
diff --git a/cfg/config.go b/cfg/config.go index cdfd943..4b4e799 100644 --- a/cfg/config.go +++ b/cfg/config.go
@@ -390,6 +390,19 @@ Os []string `yaml:"os,omitempty"` } +// DependencyFromLock converts a Lock to a Dependency +func DependencyFromLock(lock *Lock) *Dependency { + return &Dependency{ + Name: lock.Name, + Reference: lock.Version, + Repository: lock.Repository, + VcsType: lock.VcsType, + Subpackages: lock.Subpackages, + Arch: lock.Arch, + Os: lock.Os, + } +} + // UnmarshalYAML is a hook for gopkg.in/yaml.v2 in the unmarshaling process func (d *Dependency) UnmarshalYAML(unmarshal func(interface{}) error) error { newDep := &dep{}
diff --git a/cfg/lock.go b/cfg/lock.go index 2b2c4c8..3a157d0 100644 --- a/cfg/lock.go +++ b/cfg/lock.go
@@ -130,6 +130,19 @@ } } +// LockFromDependency converts a Dependency to a Lock +func LockFromDependency(dep *Dependency) *Lock { + return &Lock{ + Name: dep.Name, + Version: dep.Pin, + Repository: dep.Repository, + VcsType: dep.VcsType, + Subpackages: dep.Subpackages, + Arch: dep.Arch, + Os: dep.Os, + } +} + // NewLockfile is used to create an instance of Lockfile. func NewLockfile(ds, tds Dependencies, hash string) *Lockfile { lf := &Lockfile{ @@ -140,29 +153,13 @@ } for i := 0; i < len(ds); i++ { - lf.Imports[i] = &Lock{ - Name: ds[i].Name, - Version: ds[i].Pin, - Repository: ds[i].Repository, - VcsType: ds[i].VcsType, - Subpackages: ds[i].Subpackages, - Arch: ds[i].Arch, - Os: ds[i].Os, - } + lf.Imports[i] = LockFromDependency(ds[i]) } sort.Sort(lf.Imports) for i := 0; i < len(tds); i++ { - lf.DevImports[i] = &Lock{ - Name: tds[i].Name, - Version: tds[i].Pin, - Repository: tds[i].Repository, - VcsType: tds[i].VcsType, - Subpackages: tds[i].Subpackages, - Arch: tds[i].Arch, - Os: tds[i].Os, - } + lf.DevImports[i] = LockFromDependency(tds[i]) } sort.Sort(lf.DevImports) @@ -180,15 +177,8 @@ i := 0 for name, dep := range ds { - lf.Imports[i] = &Lock{ - Name: name, - Version: dep.Pin, - Repository: dep.Repository, - VcsType: dep.VcsType, - Subpackages: dep.Subpackages, - Arch: dep.Arch, - Os: dep.Os, - } + lf.Imports[i] = LockFromDependency(dep) + lf.Imports[i].Name = name i++ }
diff --git a/repo/installer.go b/repo/installer.go index 6f4b2d0..7528d08 100644 --- a/repo/installer.go +++ b/repo/installer.go
@@ -93,28 +93,12 @@ newConf.Imports = make(cfg.Dependencies, len(lock.Imports)) for k, v := range lock.Imports { - newConf.Imports[k] = &cfg.Dependency{ - Name: v.Name, - Reference: v.Version, - Repository: v.Repository, - VcsType: v.VcsType, - Subpackages: v.Subpackages, - Arch: v.Arch, - Os: v.Os, - } + newConf.Imports[k] = cfg.DependencyFromLock(v) } newConf.DevImports = make(cfg.Dependencies, len(lock.DevImports)) for k, v := range lock.DevImports { - newConf.DevImports[k] = &cfg.Dependency{ - Name: v.Name, - Reference: v.Version, - Repository: v.Repository, - VcsType: v.VcsType, - Subpackages: v.Subpackages, - Arch: v.Arch, - Os: v.Os, - } + newConf.DevImports[k] = cfg.DependencyFromLock(v) } newConf.DeDupe()