Simplified CheckDependencies and CheckMakeDependencies functions
This commit is contained in:
parent
9927c7f7ef
commit
124802ecc1
@ -1126,80 +1126,20 @@ func GetSourceScript(filename string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func CheckDependencies(pkgInfo *PackageInfo, rootDir string) []string {
|
func CheckDependencies(pkgInfo *PackageInfo, rootDir string) []string {
|
||||||
unresolved := make([]string, len(pkgInfo.Depends))
|
var unresolved []string
|
||||||
copy(unresolved, pkgInfo.Depends)
|
for _, dependency := range pkgInfo.Depends {
|
||||||
installedDir := path.Join(rootDir, "var/lib/bpm/installed/")
|
if !IsPackageInstalled(dependency, rootDir) {
|
||||||
if _, err := os.Stat(installedDir); err != nil {
|
unresolved = append(unresolved, dependency)
|
||||||
return nil
|
|
||||||
}
|
|
||||||
items, err := os.ReadDir(installedDir)
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, item := range items {
|
|
||||||
if !item.IsDir() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
_, err := os.Stat(path.Join(installedDir, item.Name(), "/info"))
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
bs, err := os.ReadFile(path.Join(installedDir, item.Name(), "/info"))
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
info, err := ReadPackageInfo(string(bs), false)
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if slices.Contains(unresolved, info.Name) {
|
|
||||||
unresolved = stringSliceRemove(unresolved, info.Name)
|
|
||||||
}
|
|
||||||
for _, prov := range info.Provides {
|
|
||||||
if slices.Contains(unresolved, prov) {
|
|
||||||
unresolved = stringSliceRemove(unresolved, prov)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return unresolved
|
return unresolved
|
||||||
}
|
}
|
||||||
|
|
||||||
func CheckMakeDependencies(pkgInfo *PackageInfo, rootDir string) []string {
|
func CheckMakeDependencies(pkgInfo *PackageInfo, rootDir string) []string {
|
||||||
unresolved := make([]string, len(pkgInfo.MakeDepends))
|
var unresolved []string
|
||||||
copy(unresolved, pkgInfo.MakeDepends)
|
for _, dependency := range pkgInfo.MakeDepends {
|
||||||
installedDir := path.Join(rootDir, "var/lib/bpm/installed/")
|
if !IsPackageInstalled(dependency, "/") {
|
||||||
if _, err := os.Stat(installedDir); err != nil {
|
unresolved = append(unresolved, dependency)
|
||||||
return nil
|
|
||||||
}
|
|
||||||
items, err := os.ReadDir(installedDir)
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, item := range items {
|
|
||||||
if !item.IsDir() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
_, err := os.Stat(path.Join(installedDir, item.Name(), "/info"))
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
bs, err := os.ReadFile(path.Join(installedDir, item.Name(), "/info"))
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
info, err := ReadPackageInfo(string(bs), false)
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if slices.Contains(unresolved, info.Name) {
|
|
||||||
unresolved = stringSliceRemove(unresolved, info.Name)
|
|
||||||
}
|
|
||||||
for _, prov := range info.Provides {
|
|
||||||
if slices.Contains(unresolved, prov) {
|
|
||||||
unresolved = stringSliceRemove(unresolved, prov)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return unresolved
|
return unresolved
|
||||||
|
Loading…
x
Reference in New Issue
Block a user