|
@@ -29,6 +29,9 @@ |
|
|
BEGIN { |
|
|
BEGIN { |
|
|
vmroot = "https://download.freebsd.org/ftp/snapshots/VM-IMAGES/" |
|
|
vmroot = "https://download.freebsd.org/ftp/snapshots/VM-IMAGES/" |
|
|
isoroot = "https://download.freebsd.org/ftp/snapshots/ISO-IMAGES/" |
|
|
isoroot = "https://download.freebsd.org/ftp/snapshots/ISO-IMAGES/" |
|
|
|
|
|
|
|
|
|
|
|
relvmroot = "https://download.freebsd.org/ftp/releases/VM-IMAGES/" |
|
|
|
|
|
relisoroot = "https://download.freebsd.org/ftp/releases/ISO-IMAGES/" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
tolower($1) == "message-id:" { |
|
|
tolower($1) == "message-id:" { |
|
@@ -38,12 +41,10 @@ tolower($1) == "message-id:" { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$0 == "== ISO CHECKSUMS ==" { |
|
|
$0 == "== ISO CHECKSUMS ==" { |
|
|
root = isoroot |
|
|
|
|
|
type = "iso" |
|
|
type = "iso" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$0 == "== VM IMAGE CHECKSUMS ==" { |
|
|
$0 == "== VM IMAGE CHECKSUMS ==" { |
|
|
root = vmroot |
|
|
|
|
|
type = "vm" |
|
|
type = "vm" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@@ -59,6 +60,8 @@ function isdate(date) { |
|
|
#FreeBSD-13.0-CURRENT-sparc64-20181026-r339752-bootonly.iso.asc |
|
|
#FreeBSD-13.0-CURRENT-sparc64-20181026-r339752-bootonly.iso.asc |
|
|
#FreeBSD-13.0-CURRENT-arm64-aarch64-PINE64-LTS-20181026-r339752.img.xz |
|
|
#FreeBSD-13.0-CURRENT-arm64-aarch64-PINE64-LTS-20181026-r339752.img.xz |
|
|
#FreeBSD-13.0-CURRENT-i386-20181026-r339752.vmdk.xz |
|
|
#FreeBSD-13.0-CURRENT-i386-20181026-r339752.vmdk.xz |
|
|
|
|
|
#FreeBSD-12.1-BETA3-amd64-mini-memstick.img.xz |
|
|
|
|
|
#FreeBSD-12.1-RC1-amd64-mini-memstick.img.xz |
|
|
|
|
|
|
|
|
$1 == "SHA512" { |
|
|
$1 == "SHA512" { |
|
|
# Strip parens |
|
|
# Strip parens |
|
@@ -66,7 +69,7 @@ $1 == "SHA512" { |
|
|
|
|
|
|
|
|
split(fname, dotparts, ".") |
|
|
split(fname, dotparts, ".") |
|
|
|
|
|
|
|
|
# recombine around version string, strips of ALL extensions (including vm type) |
|
|
|
|
|
|
|
|
# recombine around dot in version, strips off ALL extensions (including vm type) |
|
|
basename = dotparts[1] "." dotparts[2] |
|
|
basename = dotparts[1] "." dotparts[2] |
|
|
|
|
|
|
|
|
cnt = split(basename, parts, "-") |
|
|
cnt = split(basename, parts, "-") |
|
@@ -75,30 +78,51 @@ $1 == "SHA512" { |
|
|
arch = parts[4] |
|
|
arch = parts[4] |
|
|
basearch = arch |
|
|
basearch = arch |
|
|
if (parts[4] == "arm" || (parts[4] == "powerpc" && parts[5] == "powerpcspe") || parts[4] == "arm64") { |
|
|
if (parts[4] == "arm" || (parts[4] == "powerpc" && parts[5] == "powerpcspe") || parts[4] == "arm64") { |
|
|
|
|
|
# FreeBSD-11.3-STABLE-arm64-aarch64-20191011-r353406-memstick.img |
|
|
basearch = parts[5] |
|
|
basearch = parts[5] |
|
|
arch = parts[4] "-" parts[5] |
|
|
arch = parts[4] "-" parts[5] |
|
|
nextidx = 6 |
|
|
nextidx = 6 |
|
|
} else |
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
# FreeBSD-11.3-STABLE-amd64-20191011-r353406.qcow2.xz |
|
|
nextidx = 5 |
|
|
nextidx = 5 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
# find date, may be platform first |
|
|
# find date, may be platform first |
|
|
if (isdate(parts[nextidx])) { |
|
|
|
|
|
|
|
|
if (index(parts[3], "BETA") == 1 || index(parts[3], "RC") == 1) { |
|
|
|
|
|
if (nextidx > cnt) { |
|
|
|
|
|
# FreeBSD-12.1-BETA3-i386.vhd.xz |
|
|
|
|
|
platform = "xxx" |
|
|
|
|
|
} else if (cnt == nextidx) { |
|
|
|
|
|
# FreeBSD-12.1-RC1-powerpc-powerpcspe-dvd1.iso |
|
|
|
|
|
platform = parts[nextidx] |
|
|
|
|
|
nextidx += 1 |
|
|
|
|
|
} else { |
|
|
|
|
|
# FreeBSD-12.1-BETA3-amd64-mini-memstick.img.xz |
|
|
|
|
|
platform = parts[nextidx] "-" parts[nextidx + 1] |
|
|
|
|
|
nextidx += 2 |
|
|
|
|
|
} |
|
|
|
|
|
date = "xxx" |
|
|
|
|
|
} else if (isdate(parts[nextidx])) { |
|
|
|
|
|
# FreeBSD-11.3-STABLE-amd64-20191011-r353406.qcow2.xz |
|
|
platform = "xxx" |
|
|
platform = "xxx" |
|
|
date = parts[nextidx] |
|
|
date = parts[nextidx] |
|
|
nextidx += 1 |
|
|
nextidx += 1 |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
# FreeBSD-13.0-CURRENT-arm64-aarch64-PINE64-LTS-20181026-r339752.img.xz |
|
|
platform = parts[nextidx] |
|
|
platform = parts[nextidx] |
|
|
date = parts[nextidx + 1] |
|
|
date = parts[nextidx + 1] |
|
|
if (isdate(date)) { |
|
|
if (isdate(date)) { |
|
|
|
|
|
# FreeBSD-13.0-CURRENT-arm64-aarch64-PINEBOOK-20191011-r353427.img.xz |
|
|
nextidx += 2 |
|
|
nextidx += 2 |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
# FreeBSD-13.0-CURRENT-arm64-aarch64-PINE64-LTS-20181026-r339752.img.xz |
|
|
date = parts[nextidx + 2] |
|
|
date = parts[nextidx + 2] |
|
|
platform = parts[nextidx] "-" parts[nextidx + 1] |
|
|
platform = parts[nextidx] "-" parts[nextidx + 1] |
|
|
nextidx += 3 |
|
|
nextidx += 3 |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (nextidx == cnt) |
|
|
|
|
|
|
|
|
if (nextidx >= cnt) |
|
|
vers="xxx" |
|
|
vers="xxx" |
|
|
else { |
|
|
else { |
|
|
vers="" |
|
|
vers="" |
|
@@ -108,20 +132,32 @@ $1 == "SHA512" { |
|
|
sep="-" |
|
|
sep="-" |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (type == "vm") { |
|
|
|
|
|
vers = dotparts[3] |
|
|
|
|
|
url = root parts[2] "-" parts[3] "/" basearch "/" date "/" fname |
|
|
|
|
|
} else |
|
|
|
|
|
url = root parts[2] "/" fname |
|
|
|
|
|
|
|
|
if (index(parts[3], "BETA") == 1 || index(parts[3], "RC") == 1) { |
|
|
|
|
|
if (type == "vm") |
|
|
|
|
|
url = relvmroot parts[2] "-" parts[3] "/" basearch "/Latest/" fname |
|
|
|
|
|
else |
|
|
|
|
|
url = relisoroot parts[2] "/" fname |
|
|
|
|
|
} else { |
|
|
|
|
|
if (type == "vm") { |
|
|
|
|
|
vers = dotparts[3] |
|
|
|
|
|
url = vmroot parts[2] "-" parts[3] "/" basearch "/" date "/" fname |
|
|
|
|
|
} else |
|
|
|
|
|
url = isoroot parts[2] "/" fname |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
# if this part doesn't begin w/ r (for svn rev), skip it, we can't parse |
|
|
# if this part doesn't begin w/ r (for svn rev), skip it, we can't parse |
|
|
# others for now |
|
|
# others for now |
|
|
if (substr(parts[nextidx], 1, 1) != "r") |
|
|
|
|
|
|
|
|
rev = parts[nextidx] |
|
|
|
|
|
if (index(parts[3], "BETA") == 1 || index(parts[3], "RC") == 1) { |
|
|
|
|
|
# FreeBSD-12.1-RC1-amd64-mini-memstick.img.xz |
|
|
|
|
|
rev = "unspec" |
|
|
|
|
|
} else if (substr(rev, 1, 1) != "r") { |
|
|
next |
|
|
next |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
# double check that date is valid, if not, skip it |
|
|
# double check that date is valid, if not, skip it |
|
|
if (!isdate(date)) |
|
|
|
|
|
|
|
|
if (date != "xxx" && !isdate(date)) |
|
|
next |
|
|
next |
|
|
|
|
|
|
|
|
printf("%s %s %s %s %s %s %s %s %s %s\n", type, parts[2] "-" parts[3], arch, platform, date, parts[nextidx], vers, fname, url, MID) |
|
|
|
|
|
|
|
|
printf("%s %s %s %s %s %s %s %s %s %s\n", type, parts[2] "-" parts[3], arch, platform, date, rev, vers, fname, url, MID) |
|
|
} |
|
|
} |