Improve package info parsing

This commit is contained in:
2025-09-29 10:35:54 +03:00
parent f6ef60aa40
commit 4ff4a74fa3
3 changed files with 24 additions and 45 deletions
+1 -1
View File
@@ -208,7 +208,7 @@ func compilePackage(archive string) {
outputPkgs := make(map[string]string)
for _, line := range strings.Split(strings.TrimSpace(string(cmdOutput)), "\n") {
// Read generated package info
pkgInfo, err := bpmutilsshared.ReadPacakgeInfo(line)
pkgInfo, err := bpmutilsshared.ReadPacakgeInfoFromTarball(line)
if repo := bpmutilsshared.GetRepository(); repo != "" && *moveToBinaryDir {
// Remove old package from binary dir
+1 -1
View File
@@ -78,7 +78,7 @@ func GenerateDatabase(path string) error {
}
// Get package info
entry.PackageInfo, err = ReadPacakgeInfo(packagePath)
entry.PackageInfo, err = ReadPacakgeInfoFromTarball(packagePath)
if err != nil {
return err
}
+22 -43
View File
@@ -12,8 +12,8 @@ import (
type PackageInfo struct {
Name string `yaml:"name"`
Description string `yaml:"description"`
Version string `yaml:"version"`
Description string `yaml:"description,omitempty"`
Version string `yaml:"version,omitempty"`
Revision int `yaml:"revision,omitempty"`
Url string `yaml:"url,omitempty"`
License string `yaml:"license,omitempty"`
@@ -42,24 +42,9 @@ type PackageDownload struct {
Checksum string `yaml:"checksum,omitempty"`
}
func ReadPacakgeInfo(path string) (*PackageInfo, error) {
// Extract package info using tar
cmd := exec.Command("tar", "-x", "-f", path, "pkg.info", "-O")
output, err := cmd.Output()
if err != nil {
return nil, err
}
func ReadPackageInfo(data []byte) (*PackageInfo, error) {
pkgInfo := &PackageInfo{
Name: "",
Description: "",
Version: "",
Revision: 1,
Url: "",
License: "",
Arch: "",
OutputArch: "",
Type: "",
Keep: make([]string, 0),
Depends: make([]string, 0),
MakeDepends: make([]string, 0),
@@ -72,7 +57,23 @@ func ReadPacakgeInfo(path string) (*PackageInfo, error) {
}
// Unmarshal yaml
err = yaml.Unmarshal(output, pkgInfo)
err := yaml.Unmarshal(data, pkgInfo)
if err != nil {
return nil, err
}
return pkgInfo, nil
}
func ReadPacakgeInfoFromTarball(path string) (*PackageInfo, error) {
// Extract package info using tar
cmd := exec.Command("tar", "-x", "-f", path, "pkg.info", "-O")
output, err := cmd.Output()
if err != nil {
return nil, err
}
pkgInfo, err := ReadPackageInfo(output)
if err != nil {
return nil, err
}
@@ -81,35 +82,13 @@ func ReadPacakgeInfo(path string) (*PackageInfo, error) {
}
func ReadPacakgeInfoFromFile(path string) (*PackageInfo, error) {
// Extract package info using tar
// Read data from file
output, err := os.ReadFile(path)
if err != nil {
return nil, err
}
pkgInfo := &PackageInfo{
Name: "",
Description: "",
Version: "",
Revision: 1,
Url: "",
License: "",
Arch: "",
OutputArch: "",
Type: "",
Keep: make([]string, 0),
Depends: make([]string, 0),
OptionalDepends: make([]string, 0),
MakeDepends: make([]string, 0),
Conflicts: make([]string, 0),
Replaces: make([]string, 0),
Provides: make([]string, 0),
Downloads: make([]PackageDownload, 0),
SplitPackages: make([]*PackageInfo, 0),
}
// Unmarshal yaml
err = yaml.Unmarshal(output, pkgInfo)
pkgInfo, err := ReadPackageInfo(output)
if err != nil {
return nil, err
}