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()