@@ -5,21 +5,33 @@ import (
55 "path/filepath"
66 "regexp"
77 "strings"
8+
9+ "github.com/cloudfoundry/libbuildpack"
810)
911
1012const requirementsParserRegex = `(?m)^[\w\-\w\[\]]+`
1113
1214type Reqs struct {}
1315
1416func (m Reqs ) FindAnyPackage (buildDir string , searchedPackages ... string ) (bool , error ) {
15- reqPackages , err := parseRequirementsWithoutVersion (filepath .Join (buildDir , "requirements.txt" ))
17+ requirementsPath := filepath .Join (buildDir , "requirements.txt" )
18+
19+ requirementsFileExists , err := libbuildpack .FileExists (requirementsPath )
1620 if err != nil {
1721 return false , err
1822 }
1923
20- for _ , searchedPackage := range searchedPackages {
21- if containsPackage (reqPackages , searchedPackage ) {
22- return true , nil
24+ if requirementsFileExists {
25+
26+ reqPackages , err := parseRequirementsWithoutVersion (requirementsPath )
27+ if err != nil {
28+ return false , err
29+ }
30+
31+ for _ , searchedPackage := range searchedPackages {
32+ if containsPackage (reqPackages , searchedPackage ) {
33+ return true , nil
34+ }
2335 }
2436 }
2537
@@ -29,22 +41,34 @@ func (m Reqs) FindAnyPackage(buildDir string, searchedPackages ...string) (bool,
2941func (m Reqs ) FindStalePackages (oldRequirementsPath , newRequirementsPath string , excludedPackages ... string ) ([]string , error ) {
3042 var stalePackages []string
3143
32- oldPkgs , err := parseRequirements (oldRequirementsPath )
44+ oldRequirementsExists , err := libbuildpack . FileExists (oldRequirementsPath )
3345 if err != nil {
3446 return nil , err
3547 }
3648
37- newPkgs , err := parseRequirements (newRequirementsPath )
49+ newRequirementsExists , err := libbuildpack . FileExists (newRequirementsPath )
3850 if err != nil {
3951 return nil , err
4052 }
4153
42- for _ , oldPkg := range oldPkgs {
43- if ! containsPackage (newPkgs , oldPkg ) && ! packageIsExcluded (excludedPackages , oldPkg ) {
44- stalePackages = append (stalePackages , oldPkg )
54+ if oldRequirementsExists && newRequirementsExists {
55+
56+ oldPkgs , err := parseRequirements (oldRequirementsPath )
57+ if err != nil {
58+ return nil , err
59+ }
60+
61+ newPkgs , err := parseRequirements (newRequirementsPath )
62+ if err != nil {
63+ return nil , err
4564 }
46- }
4765
66+ for _ , oldPkg := range oldPkgs {
67+ if ! containsPackage (newPkgs , oldPkg ) && ! packageIsExcluded (excludedPackages , oldPkg ) {
68+ stalePackages = append (stalePackages , oldPkg )
69+ }
70+ }
71+ }
4872 return stalePackages , nil
4973}
5074
0 commit comments