Switch to new BPM file structure #8

Merged
EnumDev merged 11 commits from improve_bpm_structure into master 2024-10-23 06:22:40 +00:00
Showing only changes of commit 1aec288013 - Show all commits

View File

@ -44,6 +44,7 @@ type PackageInfo struct {
type PackageFileEntry struct { type PackageFileEntry struct {
Path string Path string
OctalPerms uint32
UserID int UserID int
GroupID int GroupID int
SizeInBytes uint64 SizeInBytes uint64
@ -179,9 +180,13 @@ func ReadPackage(filename string) (*BPMPackage, error) {
continue continue
} }
stringEntry := strings.Split(strings.TrimSpace(line), " ") stringEntry := strings.Split(strings.TrimSpace(line), " ")
if len(stringEntry) < 4 { if len(stringEntry) < 5 {
return nil, errors.New("pkg.files is not formatted correctly") return nil, errors.New("pkg.files is not formatted correctly")
} }
octalPerms, err := strconv.ParseUint(stringEntry[len(stringEntry)-4], 8, 32)
if err != nil {
return nil, err
}
uid, err := strconv.ParseInt(stringEntry[len(stringEntry)-3], 0, 32) uid, err := strconv.ParseInt(stringEntry[len(stringEntry)-3], 0, 32)
if err != nil { if err != nil {
return nil, err return nil, err
@ -195,7 +200,8 @@ func ReadPackage(filename string) (*BPMPackage, error) {
return nil, err return nil, err
} }
pkgFiles = append(pkgFiles, &PackageFileEntry{ pkgFiles = append(pkgFiles, &PackageFileEntry{
Path: strings.Join(stringEntry[:len(stringEntry)-3], " "), Path: strings.Join(stringEntry[:len(stringEntry)-4], " "),
OctalPerms: uint32(octalPerms),
UserID: int(uid), UserID: int(uid),
GroupID: int(gid), GroupID: int(gid),
SizeInBytes: size, SizeInBytes: size,
@ -1393,16 +1399,21 @@ func GetPackageFiles(pkg, rootDir string) []*PackageFileEntry {
continue continue
} }
stringEntry := strings.Split(strings.TrimSpace(line), " ") stringEntry := strings.Split(strings.TrimSpace(line), " ")
if len(stringEntry) < 4 { if len(stringEntry) < 5 {
pkgFiles = append(pkgFiles, &PackageFileEntry{ pkgFiles = append(pkgFiles, &PackageFileEntry{
Path: line, Path: line,
OctalPerms: 0,
UserID: 0, UserID: 0,
GroupID: 0, GroupID: 0,
SizeInBytes: 0, SizeInBytes: 0,
}) })
continue continue
} }
uid, err := strconv.ParseInt(stringEntry[len(stringEntry)-3], 0, 32) uid, err := strconv.ParseInt(stringEntry[len(stringEntry)-4], 0, 32)
if err != nil {
return nil
}
octalPerms, err := strconv.ParseInt(stringEntry[len(stringEntry)-3], 0, 32)
if err != nil { if err != nil {
return nil return nil
} }
@ -1415,7 +1426,8 @@ func GetPackageFiles(pkg, rootDir string) []*PackageFileEntry {
return nil return nil
} }
pkgFiles = append(pkgFiles, &PackageFileEntry{ pkgFiles = append(pkgFiles, &PackageFileEntry{
Path: strings.Join(stringEntry[:len(stringEntry)-3], " "), Path: strings.Join(stringEntry[:len(stringEntry)-4], " "),
OctalPerms: uint32(octalPerms),
UserID: int(uid), UserID: int(uid),
GroupID: int(gid), GroupID: int(gid),
SizeInBytes: size, SizeInBytes: size,