Support different formats of supplying Source: field.

This commit is contained in:
Andrey Smirnov
2014-02-18 00:21:31 +04:00
parent 841771c18e
commit e9449a9b15
2 changed files with 13 additions and 4 deletions

12
debian/package.go vendored
View File

@@ -253,11 +253,15 @@ func (p *Package) GetDependencies(options int) (dependencies []string) {
dependencies = append(dependencies, p.BuildDependsInDep...)
}
if options&DepFollowSource == DepFollowSource && p.Source != "" {
if strings.Index(p.Source, ")") != -1 {
dependencies = append(dependencies, fmt.Sprintf("%s {source}", p.Source))
if options&DepFollowSource == DepFollowSource {
source := p.Source
if source == "" {
source = p.Name
}
if strings.Index(source, ")") != -1 {
dependencies = append(dependencies, fmt.Sprintf("%s {source}", source))
} else {
dependencies = append(dependencies, fmt.Sprintf("%s (= %s) {source}", p.Source, p.Version))
dependencies = append(dependencies, fmt.Sprintf("%s (= %s) {source}", source, p.Version))
}
}

View File

@@ -189,7 +189,12 @@ func (s *PackageSuite) TestGetDependencies(c *C) {
c.Check(p.GetDependencies(0), DeepEquals, []string{"libc6 (>= 2.7)", "alien-arena-data (>= 7.40)", "dpkg (>= 1.6)"})
c.Check(p.GetDependencies(DepFollowSuggests), DeepEquals, []string{"libc6 (>= 2.7)", "alien-arena-data (>= 7.40)", "dpkg (>= 1.6)", "alien-arena-mars"})
c.Check(p.GetDependencies(DepFollowSuggests|DepFollowRecommends), DeepEquals, []string{"libc6 (>= 2.7)", "alien-arena-data (>= 7.40)", "dpkg (>= 1.6)", "aliean-arena-luna", "alien-arena-mars"})
c.Check(p.GetDependencies(DepFollowSource), DeepEquals, []string{"libc6 (>= 2.7)", "alien-arena-data (>= 7.40)", "dpkg (>= 1.6)", "alien-arena (= 7.40-2) {source}"})
p.Source = "alien-arena (7.40-3)"
c.Check(p.GetDependencies(DepFollowSource), DeepEquals, []string{"libc6 (>= 2.7)", "alien-arena-data (>= 7.40)", "dpkg (>= 1.6)", "alien-arena (7.40-3) {source}"})
p.Source = ""
c.Check(p.GetDependencies(DepFollowSource), DeepEquals, []string{"libc6 (>= 2.7)", "alien-arena-data (>= 7.40)", "dpkg (>= 1.6)", "alien-arena-common (= 7.40-2) {source}"})
p, _ = NewSourcePackageFromControlFile(s.sourceStanza)
c.Check(p.GetDependencies(0), DeepEquals, []string{})