mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-08-23 22:16:48 +00:00
chore: cleanup general pkg vs pkgdist confusion
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
// Package git provides variant tagging for Git for Windows releases.
|
||||
//
|
||||
// Git for Windows publishes GUI installer .exe files (Git-*-bit.exe),
|
||||
// self-extracting PortableGit archives, and .pdb debug symbol packages
|
||||
// alongside the MinGit .zip that webi installs.
|
||||
package gitdist
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/webinstall/webi-installers/internal/storage"
|
||||
)
|
||||
|
||||
// TagVariants tags git-specific build variants and fixes OS/arch classification.
|
||||
// All git-for-windows releases are Windows-only, but MinGit filenames like
|
||||
// "MinGit-2.33.0-64-bit.zip" have no "windows" indicator — force OS=windows.
|
||||
// MinGit uses "64-bit"/"32-bit" for arch — a convention specific to this project
|
||||
// that the general classifier intentionally does not handle.
|
||||
func TagVariants(assets []storage.Asset) {
|
||||
for i := range assets {
|
||||
// All git-for-windows assets are Windows. Filenames like
|
||||
// "MinGit-2.33.0-64-bit.zip" have no OS term; set it explicitly.
|
||||
if assets[i].OS == "" {
|
||||
assets[i].OS = "windows"
|
||||
}
|
||||
|
||||
// MinGit uses "64-bit"→x86_64, "32-bit"→x86 naming.
|
||||
// "arm64" is already handled by the general classifier.
|
||||
if assets[i].Arch == "" {
|
||||
lower := strings.ToLower(assets[i].Filename)
|
||||
if strings.Contains(lower, "64-bit") {
|
||||
assets[i].Arch = "x86_64"
|
||||
} else if strings.Contains(lower, "32-bit") {
|
||||
assets[i].Arch = "x86"
|
||||
}
|
||||
}
|
||||
|
||||
lower := strings.ToLower(assets[i].Filename)
|
||||
if assets[i].Format == ".exe" {
|
||||
assets[i].Variants = append(assets[i].Variants, "installer")
|
||||
}
|
||||
if strings.Contains(lower, "portablegit") {
|
||||
assets[i].Variants = append(assets[i].Variants, "installer")
|
||||
}
|
||||
if strings.Contains(lower, "-pdb") || strings.Contains(lower, "pdbs-for-") {
|
||||
assets[i].Variants = append(assets[i].Variants, "pdb")
|
||||
}
|
||||
if strings.Contains(lower, "-busybox") {
|
||||
assets[i].Variants = append(assets[i].Variants, "busybox")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package gitdist
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/webinstall/webi-installers/internal/storage"
|
||||
)
|
||||
|
||||
// NormalizeVersions strips the ".windows.N" suffix from Git for Windows
|
||||
// version strings to match the upstream Git version scheme.
|
||||
//
|
||||
// Git for Windows tags are like "v2.53.0.windows.1" or "v2.53.0.windows.2".
|
||||
// Node.js strips ".windows.1" entirely and replaces ".windows.N" (N>1)
|
||||
// with ".N":
|
||||
//
|
||||
// v2.53.0.windows.1 → v2.53.0
|
||||
// v2.53.0.windows.2 → v2.53.0.2
|
||||
func NormalizeVersions(assets []storage.Asset) {
|
||||
for i := range assets {
|
||||
v := assets[i].Version
|
||||
before, after, ok := strings.Cut(v, ".windows.")
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
suffix := after
|
||||
base := before
|
||||
if suffix == "1" {
|
||||
assets[i].Version = base
|
||||
} else {
|
||||
assets[i].Version = base + "." + suffix
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user