summaryrefslogtreecommitdiff
path: root/wit.go
diff options
context:
space:
mode:
Diffstat (limited to 'wit.go')
-rw-r--r--wit.go129
1 files changed, 0 insertions, 129 deletions
diff --git a/wit.go b/wit.go
index a364de3..2b929ad 100644
--- a/wit.go
+++ b/wit.go
@@ -1,11 +1,7 @@
package zoopb
import (
- "bufio"
- "os"
"strings"
-
- "go.wit.com/lib/fhelp"
)
func (m *Machine) IsInstalled(name string) bool {
@@ -113,128 +109,3 @@ func (m *Machine) FindByVersion(name string, version string) *Package {
// log.Info("package not-installed:", name)
return nil
}
-
-// obviously a hack at this point
-// read the package list file from mirrors.wit.com
-func (m *Machine) InitWitMirrors() error {
- m.Wit = NewPackages()
- err := m.scanPackageListFile("/var/lib/apt/lists/mirrors.wit.com_wit_dists_sid_main_binary-amd64_Packages")
- return err
-}
-
-// adds the package if the name isn't there
-// if it's newer, remove the old package and use the new one
-func (all *Packages) AddIfNewer(p *Package) {
- check := all.FindByName(p.Name)
- if check == nil {
- all.Append(p)
- return
- }
- v1, _ := fhelp.NewDebVersion(check.Version)
- v2, _ := fhelp.NewDebVersion(p.Version)
- if v1.Equal(v2) {
- // log.Info("do nothing", v1, v2)
- return
- }
- if v1.LessThan(v2) {
- // log.Info("removing", v1, "using", v2)
- all.Delete(check)
- all.Append(p)
- } else {
- // log.Info("keeping", v1, "got:", v2)
- }
-}
-
-// breaks up the apt list file into sections
-// then sends each section to be processed
-// and added to zoopb.Machine.Wit
-func (m *Machine) scanPackageListFile(filename string) error {
- file, err := os.Open(filename)
- if err != nil {
- return err
- }
- defer file.Close()
- scanner := bufio.NewScanner(file)
- var debInfo string
- for scanner.Scan() {
- line := scanner.Text()
- if line == "" {
- p := parsePackageInfo(debInfo)
- m.Wit.AddIfNewer(p)
- debInfo = ""
- }
- debInfo += line + "\n"
- }
- p := parsePackageInfo(debInfo)
- m.Wit.Append(p)
- return nil
-}
-
-/*
-func (m *Machine) addPackage(name string, version string, filename string) {
- if name == "" {
- return
- }
- // log.Info("addPackage:", name, version, filename)
- var deb *DebPackage
- var ok bool
- deb, ok = allp[name]
- if !ok {
- deb = NewPackage()
- deb.name.SetLabel(name)
- allp[name] = deb
- }
- newversion := new(Version)
- newversion.v = version
- newversion.file = filename
- deb.versions = append(deb.versions, newversion)
-}
-*/
-
-// parses dpkg -s foo.deb
-func parsePackageInfo(lines string) *Package {
- var name string
- var version string
- var filename string
- var gopath string
-
- for _, line := range strings.Split(lines, "\n") {
- if line == "" {
- continue
- }
- if strings.HasPrefix(line, " ") {
- // these are usually Description: lines
- continue
- }
- if strings.HasPrefix(line, "#") {
- // skip comment lines. (probably doesn't happen in debian list files
- continue
- }
- line = strings.TrimSpace(line)
- parts := strings.Split(line, " ")
- if len(parts) < 2 {
- continue
- }
- if parts[0] == "Package:" {
- name = parts[1]
- }
- if parts[0] == "Version:" {
- version = parts[1]
- }
- if parts[0] == "Filename:" {
- filename = strings.Join(parts[1:], " ")
- }
- if parts[0] == "GoPath:" {
- gopath = parts[1]
- }
- }
-
- p := Package{
- Name: name,
- Version: version,
- PkgName: filename,
- SrcPath: gopath,
- }
-
- return &p
-}