mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-10 06:14:22 +00:00
Verify dependencies with progress.
This commit is contained in:
@@ -127,7 +127,7 @@ func aptlySnapshotPull(cmd *commander.Command, args []string) error {
|
|||||||
pL := debian.NewPackageList()
|
pL := debian.NewPackageList()
|
||||||
pL.Add(pkg)
|
pL.Add(pkg)
|
||||||
|
|
||||||
missing, err := pL.VerifyDependencies(context.dependencyOptions, []string{arch}, packageList)
|
missing, err := pL.VerifyDependencies(context.dependencyOptions, []string{arch}, packageList, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
context.progress.ColoredPrintf("@y[!]@| @!Error while verifying dependencies for pkg %s: %s@|", pkg, err)
|
context.progress.ColoredPrintf("@y[!]@| @!Error while verifying dependencies for pkg %s: %s@|", pkg, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,9 @@ func aptlySnapshotVerify(cmd *commander.Command, args []string) error {
|
|||||||
return fmt.Errorf("unable to determine list of architectures, please specify explicitly")
|
return fmt.Errorf("unable to determine list of architectures, please specify explicitly")
|
||||||
}
|
}
|
||||||
|
|
||||||
missing, err := packageList.VerifyDependencies(context.dependencyOptions, architecturesList, sourcePackageList)
|
context.progress.Printf("Verifying...\n")
|
||||||
|
|
||||||
|
missing, err := packageList.VerifyDependencies(context.dependencyOptions, architecturesList, sourcePackageList, context.progress)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("unable to verify dependencies: %s", err)
|
return fmt.Errorf("unable to verify dependencies: %s", err)
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+14
-2
@@ -219,13 +219,21 @@ func depSliceDeduplicate(s []Dependency) []Dependency {
|
|||||||
// VerifyDependencies looks for missing dependencies in package list.
|
// VerifyDependencies looks for missing dependencies in package list.
|
||||||
//
|
//
|
||||||
// Analysis would be peformed for each architecture, in specified sources
|
// Analysis would be peformed for each architecture, in specified sources
|
||||||
func (l *PackageList) VerifyDependencies(options int, architectures []string, sources *PackageList) ([]Dependency, error) {
|
func (l *PackageList) VerifyDependencies(options int, architectures []string, sources *PackageList, progress aptly.Progress) ([]Dependency, error) {
|
||||||
missing := make([]Dependency, 0, 128)
|
missing := make([]Dependency, 0, 128)
|
||||||
|
|
||||||
|
if progress != nil {
|
||||||
|
progress.InitBar(int64(l.Len())*int64(len(architectures)), false)
|
||||||
|
}
|
||||||
|
|
||||||
for _, arch := range architectures {
|
for _, arch := range architectures {
|
||||||
cache := make(map[string]bool, 2048)
|
cache := make(map[string]bool, 2048)
|
||||||
|
|
||||||
for _, p := range l.packages {
|
for _, p := range l.packages {
|
||||||
|
if progress != nil {
|
||||||
|
progress.AddBar(1)
|
||||||
|
}
|
||||||
|
|
||||||
if !p.MatchesArchitecture(arch) {
|
if !p.MatchesArchitecture(arch) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -280,6 +288,10 @@ func (l *PackageList) VerifyDependencies(options int, architectures []string, so
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if progress != nil {
|
||||||
|
progress.ShutdownBar()
|
||||||
|
}
|
||||||
|
|
||||||
return missing, nil
|
return missing, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -404,7 +416,7 @@ func (l *PackageList) Filter(queries []string, withDependencies bool, source *Pa
|
|||||||
added = 0
|
added = 0
|
||||||
|
|
||||||
// find missing dependencies
|
// find missing dependencies
|
||||||
missing, err := result.VerifyDependencies(dependencyOptions, architecturesList, dependencySource)
|
missing, err := result.VerifyDependencies(dependencyOptions, architecturesList, dependencySource, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+7
-7
@@ -259,19 +259,19 @@ func (s *PackageListSuite) TestFilter(c *C) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *PackageListSuite) TestVerifyDependencies(c *C) {
|
func (s *PackageListSuite) TestVerifyDependencies(c *C) {
|
||||||
missing, err := s.il.VerifyDependencies(0, []string{"i386"}, s.il)
|
missing, err := s.il.VerifyDependencies(0, []string{"i386"}, s.il, nil)
|
||||||
c.Check(err, IsNil)
|
c.Check(err, IsNil)
|
||||||
c.Check(missing, DeepEquals, []Dependency{})
|
c.Check(missing, DeepEquals, []Dependency{})
|
||||||
|
|
||||||
missing, err = s.il.VerifyDependencies(0, []string{"i386", "amd64"}, s.il)
|
missing, err = s.il.VerifyDependencies(0, []string{"i386", "amd64"}, s.il, nil)
|
||||||
c.Check(err, IsNil)
|
c.Check(err, IsNil)
|
||||||
c.Check(missing, DeepEquals, []Dependency{Dependency{Pkg: "lib", Relation: VersionGreater, Version: "0.9", Architecture: "amd64"}})
|
c.Check(missing, DeepEquals, []Dependency{Dependency{Pkg: "lib", Relation: VersionGreater, Version: "0.9", Architecture: "amd64"}})
|
||||||
|
|
||||||
missing, err = s.il.VerifyDependencies(0, []string{"arm"}, s.il)
|
missing, err = s.il.VerifyDependencies(0, []string{"arm"}, s.il, nil)
|
||||||
c.Check(err, IsNil)
|
c.Check(err, IsNil)
|
||||||
c.Check(missing, DeepEquals, []Dependency{})
|
c.Check(missing, DeepEquals, []Dependency{})
|
||||||
|
|
||||||
missing, err = s.il.VerifyDependencies(DepFollowAllVariants, []string{"arm"}, s.il)
|
missing, err = s.il.VerifyDependencies(DepFollowAllVariants, []string{"arm"}, s.il, nil)
|
||||||
c.Check(err, IsNil)
|
c.Check(err, IsNil)
|
||||||
c.Check(missing, DeepEquals, []Dependency{Dependency{Pkg: "lib", Relation: VersionGreater, Version: "0.9", Architecture: "arm"},
|
c.Check(missing, DeepEquals, []Dependency{Dependency{Pkg: "lib", Relation: VersionGreater, Version: "0.9", Architecture: "arm"},
|
||||||
Dependency{Pkg: "mail-agent", Relation: VersionDontCare, Version: "", Architecture: "arm"}})
|
Dependency{Pkg: "mail-agent", Relation: VersionDontCare, Version: "", Architecture: "arm"}})
|
||||||
@@ -280,15 +280,15 @@ func (s *PackageListSuite) TestVerifyDependencies(c *C) {
|
|||||||
s.il.Add(p)
|
s.il.Add(p)
|
||||||
}
|
}
|
||||||
|
|
||||||
missing, err = s.il.VerifyDependencies(DepFollowSource, []string{"i386", "amd64"}, s.il)
|
missing, err = s.il.VerifyDependencies(DepFollowSource, []string{"i386", "amd64"}, s.il, nil)
|
||||||
c.Check(err, IsNil)
|
c.Check(err, IsNil)
|
||||||
c.Check(missing, DeepEquals, []Dependency{Dependency{Pkg: "lib", Relation: VersionGreater, Version: "0.9", Architecture: "amd64"}})
|
c.Check(missing, DeepEquals, []Dependency{Dependency{Pkg: "lib", Relation: VersionGreater, Version: "0.9", Architecture: "amd64"}})
|
||||||
|
|
||||||
missing, err = s.il.VerifyDependencies(DepFollowSource, []string{"arm"}, s.il)
|
missing, err = s.il.VerifyDependencies(DepFollowSource, []string{"arm"}, s.il, nil)
|
||||||
c.Check(err, IsNil)
|
c.Check(err, IsNil)
|
||||||
c.Check(missing, DeepEquals, []Dependency{Dependency{Pkg: "libx", Relation: VersionEqual, Version: "1.5", Architecture: "source"}})
|
c.Check(missing, DeepEquals, []Dependency{Dependency{Pkg: "libx", Relation: VersionEqual, Version: "1.5", Architecture: "source"}})
|
||||||
|
|
||||||
_, err = s.il.VerifyDependencies(0, []string{"i386", "amd64", "s390"}, s.il)
|
_, err = s.il.VerifyDependencies(0, []string{"i386", "amd64", "s390"}, s.il, nil)
|
||||||
c.Check(err, ErrorMatches, "unable to process package app_1.0_s390:.*")
|
c.Check(err, ErrorMatches, "unable to process package app_1.0_s390:.*")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Loading packages...
|
Loading packages...
|
||||||
|
Verifying...
|
||||||
Missing dependencies (11):
|
Missing dependencies (11):
|
||||||
fenix [amd64]
|
fenix [amd64]
|
||||||
fenix-plugins-system [amd64]
|
fenix-plugins-system [amd64]
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Loading packages...
|
Loading packages...
|
||||||
|
Verifying...
|
||||||
Missing dependencies (11):
|
Missing dependencies (11):
|
||||||
fenix [amd64]
|
fenix [amd64]
|
||||||
fenix-plugins-system [amd64]
|
fenix-plugins-system [amd64]
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Loading packages...
|
Loading packages...
|
||||||
|
Verifying...
|
||||||
Missing dependencies (2):
|
Missing dependencies (2):
|
||||||
kbdcontrol [i386]
|
kbdcontrol [i386]
|
||||||
vidcontrol [i386]
|
vidcontrol [i386]
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Loading packages...
|
Loading packages...
|
||||||
|
Verifying...
|
||||||
Missing dependencies (1742):
|
Missing dependencies (1742):
|
||||||
915resolution [i386]
|
915resolution [i386]
|
||||||
9fonts [i386]
|
9fonts [i386]
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Loading packages...
|
Loading packages...
|
||||||
|
Verifying...
|
||||||
Missing dependencies (1622):
|
Missing dependencies (1622):
|
||||||
915resolution [i386]
|
915resolution [i386]
|
||||||
9fonts [i386]
|
9fonts [i386]
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Loading packages...
|
Loading packages...
|
||||||
|
Verifying...
|
||||||
Missing dependencies (3797):
|
Missing dependencies (3797):
|
||||||
915resolution [amd64]
|
915resolution [amd64]
|
||||||
915resolution [i386]
|
915resolution [i386]
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Loading packages...
|
Loading packages...
|
||||||
|
Verifying...
|
||||||
Missing dependencies (673):
|
Missing dependencies (673):
|
||||||
abrowser [amd64]
|
abrowser [amd64]
|
||||||
abrowser [i386]
|
abrowser [i386]
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Loading packages...
|
Loading packages...
|
||||||
|
Verifying...
|
||||||
Missing dependencies (32):
|
Missing dependencies (32):
|
||||||
dpkg (>= 1.15.4) [amd64]
|
dpkg (>= 1.15.4) [amd64]
|
||||||
dpkg (>= 1.15.4) [i386]
|
dpkg (>= 1.15.4) [i386]
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Loading packages...
|
Loading packages...
|
||||||
|
Verifying...
|
||||||
Missing dependencies (30):
|
Missing dependencies (30):
|
||||||
dpkg (>= 1.15.4) [amd64]
|
dpkg (>= 1.15.4) [amd64]
|
||||||
dpkg (>= 1.15.4) [i386]
|
dpkg (>= 1.15.4) [i386]
|
||||||
|
|||||||
Reference in New Issue
Block a user