Documentation
¶
Index ¶
Constants ¶
const ( LINUX_ALL_DISTROS string = "all" LINUX_DISTROS_UBUNTU string = "ubuntu" LINUX_DISTROS_UBUNTU_PORTS string = "ubuntu-ports" LINUX_DISTROS_DEBIAN string = "debian" LINUX_DISTROS_DEBIAN_SECURITY string = "debian-security" LINUX_DISTROS_CENTOS string = "centos" LINUX_DISTROS_ROCKY string = "rocky" LINUX_DISTROS_FEDORA string = "fedora" LINUX_DISTROS_ALPINE string = "alpine" )
const ( TYPE_LINUX_ALL_DISTROS int = 0 TYPE_LINUX_DISTROS_UBUNTU int = 1 TYPE_LINUX_DISTROS_UBUNTU_PORTS int = 2 TYPE_LINUX_DISTROS_DEBIAN int = 3 TYPE_LINUX_DISTROS_DEBIAN_SECURITY int = 4 TYPE_LINUX_DISTROS_CENTOS int = 5 TYPE_LINUX_DISTROS_ROCKY int = 7 TYPE_LINUX_DISTROS_FEDORA int = 8 TYPE_LINUX_DISTROS_ALPINE int = 9 )
const ( UBUNTU_PORTS_GEO_MIRROR_API = "http://mirrors.ubuntu.com/mirrors.txt" UBUNTU_PORTS_BENCHMAKR_URL = "dists/noble/InRelease/Release" )
const ( UBUNTU_GEO_MIRROR_API = "http://mirrors.ubuntu.com/mirrors.txt" UBUNTU_BENCHMAKR_URL = "dists/noble/main/binary-amd64/Release" )
const ALPINE_BENCHMAKR_URL = "MIRRORS.txt"
const CENTOS_BENCHMAKR_URL = "TIME"
const (
DEBIAN_BENCHMAKR_URL = "dists/bookworm/main/binary-amd64/Release"
)
const (
DEBIAN_SECURITY_BENCHMARK_URL = "dists/bookworm-security/main/binary-amd64/Release"
)
const FEDORA_BENCHMAKR_URL = "TIME"
const ROCKY_BENCHMAKR_URL = "TIME"
Variables ¶
var ALPINE_CUSTOM_MIRRORS = []string{}
var ALPINE_DEFAULT_CACHE_RULES = []Rule{ {Pattern: regexp.MustCompile(`APKINDEX.tar.gz$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ALPINE}, {Pattern: regexp.MustCompile(`tar.gz$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ALPINE}, {Pattern: regexp.MustCompile(`apk$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ALPINE}, {Pattern: regexp.MustCompile(`.*`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ALPINE}, }
var ALPINE_HOST_PATTERN = regexp.MustCompile(`/alpine/(.+)$`)
var ALPINE_OFFICIAL_MIRRORS = []string{
"http://dl-cdn.alpinelinux.org/alpine/",
"http://mirrors.ircam.fr/pub/alpine/",
"mirrors.tuna.tsinghua.edu.cn/alpine/",
}
https://mirrors.alpinelinux.org/ 2022.11.19 Sites that contain protocol headers, restrict access to resources using that protocol
var BUILDIN_ALPINE_MIRRORS = GenerateBuildInList(ALPINE_OFFICIAL_MIRRORS, ALPINE_CUSTOM_MIRRORS)
var BUILDIN_CENTOS_MIRRORS = GenerateBuildInList(CENTOS_OFFICIAL_MIRRORS, CENTOS_CUSTOM_MIRRORS)
var BUILDIN_DEBIAN_MIRRORS = GenerateBuildInList(DEBIAN_OFFICIAL_MIRRORS, DEBIAN_CUSTOM_MIRRORS)
var BUILDIN_DEBIAN_SECURITY_MIRRORS = GenerateBuildInList(DEBIAN_SECURITY_OFFICIAL_MIRRORS, DEBIAN_SECURITY_CUSTOM_MIRRORS)
var BUILDIN_FEDORA_MIRRORS = GenerateBuildInList(FEDORA_OFFICIAL_MIRRORS, FEDORA_CUSTOM_MIRRORS)
var BUILDIN_ROCKY_MIRRORS = GenerateBuildInList(ROCKY_OFFICIAL_MIRRORS, ROCKY_CUSTOM_MIRRORS)
var BUILDIN_UBUNTU_MIRRORS = GenerateBuildInList(UBUNTU_OFFICIAL_MIRRORS, UBUNTU_CUSTOM_MIRRORS)
var BUILDIN_UBUNTU_PORTS_MIRRORS = GenerateBuildInList(UBUNTU_PORTS_OFFICIAL_MIRRORS, UBUNTU_PORTS_CUSTOM_MIRRORS)
var CENTOS_CUSTOM_MIRRORS = []string{}
var CENTOS_DEFAULT_CACHE_RULES = []Rule{ {Pattern: regexp.MustCompile(`repomd.xml$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_CENTOS}, {Pattern: regexp.MustCompile(`filelist.gz$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_CENTOS}, {Pattern: regexp.MustCompile(`dir_sizes$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_CENTOS}, {Pattern: regexp.MustCompile(`TIME$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_CENTOS}, {Pattern: regexp.MustCompile(`timestamp.txt$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_CENTOS}, {Pattern: regexp.MustCompile(`.*`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_CENTOS}, }
var CENTOS_HOST_PATTERN = regexp.MustCompile(`/centos/(.+)$`)
var CENTOS_OFFICIAL_MIRRORS = []string{
"http://mirror.centos.org/centos/",
"http://centos.mirrors.proxad.net/centos/",
"http://centos.mirrors.ovh.net/ftp.centos.org/",
"http://ftp.rezopole.net/centos/",
"http://mirror.ibcp.fr/pub/centos/",
"mirrors.tuna.tsinghua.edu.cn/centos/",
}
https://www.centos.org/download/mirrors/ 2022.11.19 Sites that contain protocol headers, restrict access to resources using that protocol
var DEBIAN_CUSTOM_MIRRORS = []string{}
var DEBIAN_DEFAULT_CACHE_RULES = []Rule{ {Pattern: regexp.MustCompile(`deb$`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`udeb$`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`InRelease$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`DiffIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`PackagesIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`Packages\.(bz2|gz|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`SourcesIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`Sources\.(bz2|gz|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`Release(\.gpg)?$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`Translation-(en|fr)\.(gz|bz2|bzip2|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, {Pattern: regexp.MustCompile(`/by-hash/`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN}, }
var DEBIAN_HOST_PATTERN = regexp.MustCompile(`/debian/(.+)$`)
var DEBIAN_OFFICIAL_MIRRORS = []string{
"http://ftp.fr.debian.org/debian/",
"http://deb.debian.org/debian/",
"http://ftp.rezopole.net/debian/",
"mirrors.tuna.tsinghua.edu.cn/debian/",
}
https://www.debian.org/mirror/list 2022.11.19 Sites that contain protocol headers, restrict access to resources using that protocol
var DEBIAN_SECURITY_CUSTOM_MIRRORS = []string{}
var DEBIAN_SECURITY_DEFAULT_CACHE_RULES = []Rule{ {Pattern: regexp.MustCompile(`deb$`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`udeb$`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`InRelease$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`DiffIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`PackagesIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`Packages\.(bz2|gz|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`SourcesIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`Sources\.(bz2|gz|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`Release(\.gpg)?$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`Translation-(en|fr)\.(gz|bz2|bzip2|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, {Pattern: regexp.MustCompile(`/by-hash/`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_DEBIAN_SECURITY}, }
var DEBIAN_SECURITY_HOST_PATTERN = regexp.MustCompile(`/debian-security/(.+)$`)
var DEBIAN_SECURITY_OFFICIAL_MIRRORS = []string{
"http://ftp.fr.debian.org/debian-security/",
"http://deb.debian.org/debian-security/",
"http://ftp.rezopole.net/debian-security/",
"mirrors.tuna.tsinghua.edu.cn/debian-security/",
}
var FEDORA_CUSTOM_MIRRORS = []string{}
var FEDORA_DEFAULT_CACHE_RULES = []Rule{ {Pattern: regexp.MustCompile(`repodata/.*\.(xml|xml.gz|xml.xz|json)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_FEDORA}, {Pattern: regexp.MustCompile(`repodata/.*\.(zck|zst)$`), CacheControl: ``, Rewrite: false, OS: TYPE_LINUX_DISTROS_FEDORA}, {Pattern: regexp.MustCompile(`Packages/.*\.rpm$`), CacheControl: `max-age=86400`, Rewrite: true, OS: TYPE_LINUX_DISTROS_FEDORA}, {Pattern: regexp.MustCompile(`.*timestamp.txt$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_FEDORA}, {Pattern: regexp.MustCompile(`.*`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_FEDORA}, }
var FEDORA_HOST_PATTERN = regexp.MustCompile(`/fedora/(.+)$`)
var FEDORA_OFFICIAL_MIRRORS = []string{
"https://download.fedoraproject.org/pub/fedora/linux/",
"https://mirror.ufs.ac.za/fedora/",
"http://ftp.nluug.nl/pub/os/Linux/distr/fedora/",
}
https://mirrors.fedoraproject.org/ 2022.11.19 Official Fedora mirrors
var ROCKY_CUSTOM_MIRRORS = []string{}
var ROCKY_DEFAULT_CACHE_RULES = []Rule{ {Pattern: regexp.MustCompile(`repomd.xml$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ROCKY}, {Pattern: regexp.MustCompile(`filelist.gz$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ROCKY}, {Pattern: regexp.MustCompile(`dir_sizes$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ROCKY}, {Pattern: regexp.MustCompile(`TIME$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ROCKY}, {Pattern: regexp.MustCompile(`timestamp.txt$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ROCKY}, {Pattern: regexp.MustCompile(`.*`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_ROCKY}, }
var ROCKY_HOST_PATTERN = regexp.MustCompile(`/rocky/(.+)$`)
var ROCKY_OFFICIAL_MIRRORS = []string{
"https://dl.rockylinux.org/pub/rocky/",
"https://rockylinux.mirrors.ovh.net/",
}
https://mirrors.rockylinux.org/ 2022.11.19 Official Rocky Linux mirrors
var UBUNTU_CUSTOM_MIRRORS = []string{}
var UBUNTU_DEFAULT_CACHE_RULES = []Rule{ {Pattern: regexp.MustCompile(`deb$`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`udeb$`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`InRelease$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`DiffIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`PackagesIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`Packages\.(bz2|gz|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`SourcesIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`Sources\.(bz2|gz|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`Release(\.gpg)?$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`Translation-(en|fr)\.(gz|bz2|bzip2|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, {Pattern: regexp.MustCompile(`\/by-hash\/`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU}, }
var UBUNTU_HOST_PATTERN = regexp.MustCompile(`/ubuntu/(.+)$`)
var UBUNTU_OFFICIAL_MIRRORS = []string{
"http://fr.archive.ubuntu.com/ubuntu/",
"http://mirrors.ircam.fr/pub/ubuntu/",
"mirrors.tuna.tsinghua.edu.cn/ubuntu/",
}
http://mirrors.ubuntu.com/mirrors.txt 2022.11.19 Sites that contain protocol headers, restrict access to resources using that protocol
var UBUNTU_PORTS_CUSTOM_MIRRORS = []string{}
var UBUNTU_PORTS_DEFAULT_CACHE_RULES = []Rule{ {Pattern: regexp.MustCompile(`deb$`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`udeb$`), CacheControl: `max-age=100000`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`InRelease$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`DiffIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`PackagesIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`Packages\.(bz2|gz|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`SourcesIndex$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`Sources\.(bz2|gz|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`Release(\.gpg)?$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`Translation-(en|fr)\.(gz|bz2|bzip2|lzma)$`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, {Pattern: regexp.MustCompile(`\/by-hash\/`), CacheControl: `max-age=3600`, Rewrite: true, OS: TYPE_LINUX_DISTROS_UBUNTU_PORTS}, }
var UBUNTU_PORTS_HOST_PATTERN = regexp.MustCompile(`/ubuntu-ports/(.+)$`)
var UBUNTU_PORTS_OFFICIAL_MIRRORS = []string{
"http://mirrors.ircam.fr/pub/ubuntu-ports/",
"http://fr.archive.ubuntu.com/ubuntu-ports/",
"mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/",
}
http://mirrors.ubuntu.com/mirrors.txt 2022.11.19 Sites that contain protocol headers, restrict access to resources using that protocol
Functions ¶
func GenerateAliasFromURL ¶
Types ¶
type UrlWithAlias ¶
type UrlWithAlias struct { URL string Alias string Http bool Https bool Official bool Bandwidth int64 }
func GenerateBuildInList ¶
func GenerateBuildInList(officialList []string, customList []string) (mirrors []UrlWithAlias)
func GenerateBuildInMirorItem ¶
func GenerateBuildInMirorItem(url string, official bool) UrlWithAlias