filter out all.deb for i386

This commit is contained in:
ferrreo 2023-09-05 14:09:56 +01:00
parent 31de084f32
commit ad2790bc3e
2 changed files with 10 additions and 4 deletions

BIN
ppp

Binary file not shown.

View File

@ -25,6 +25,7 @@ func main() {
Source: os.Args[1], Source: os.Args[1],
Target: os.Args[2], Target: os.Args[2],
Download: false, Download: false,
Is32bit: false,
} }
if len(os.Args) > 3 { if len(os.Args) > 3 {
@ -33,10 +34,14 @@ func main() {
config.Output = os.Args[4] config.Output = os.Args[4]
} }
if strings.Contains(config.Source, "i386") {
config.Is32bit = true
}
basePackages := processFile(config.Source) basePackages := processFile(config.Source)
targetPackages := processFile(config.Target) targetPackages := processFile(config.Target)
changed := compare(basePackages, targetPackages, config.Download) changed := compare(basePackages, targetPackages, config.Download, config.Is32bit)
if config.Download { if config.Download {
download(changed, config.DlUrl, config.Output) download(changed, config.DlUrl, config.Output)
} }
@ -107,17 +112,17 @@ func processFile(url string) map[string]packageInfo {
return packages return packages
} }
func compare(basePackages map[string]packageInfo, targetPackages map[string]packageInfo, download bool) map[string]packageInfo { func compare(basePackages map[string]packageInfo, targetPackages map[string]packageInfo, download bool, is32bit bool) map[string]packageInfo {
output := make(map[string]packageInfo) output := make(map[string]packageInfo)
for pack, info := range targetPackages { for pack, info := range targetPackages {
if baseVersion, ok := basePackages[pack]; ok { if baseVersion, ok := basePackages[pack]; ok {
if baseVersion.Version != info.Version { if baseVersion.Version != info.Version && (!is32bit || !strings.HasSuffix(info.FilePath, "all.deb")) {
output[pack] = info output[pack] = info
if !download { if !download {
os.Stdout.WriteString(pack) os.Stdout.WriteString(pack)
} }
} }
} else { } else if !is32bit || !strings.HasSuffix(info.FilePath, "all.deb") {
output[pack] = info output[pack] = info
if !download { if !download {
os.Stdout.WriteString(pack) os.Stdout.WriteString(pack)
@ -248,6 +253,7 @@ type config struct {
Download bool Download bool
DlUrl string DlUrl string
Output string Output string
Is32bit bool
} }
type packageInfo struct { type packageInfo struct {