# This file is the config required by genisolist.py

# This special section named "%main%" defined following variables:
# "root": HTTP root of mirrors. The script will locate the images in it.
# "urlbase": URL of mirrors prepended to image path. We want to use relative
#            path, so set it to '/' instead of complete URL.
# "d[N]": For distribution sorting. where N is an positive integer. The value
#         is disto name specified in below sections. Lower N makes the distro
#         show higher. Default N is 0xFFFF for distro not mentioned.
[%main%]
root = /data/
urlbase = /
d10 = Arch Linux
d20 = Debian
d25 = CentOS
d30 = Fedora
d40 = Ubuntu
d50 = Ubuntu 衍生版
d60 = Deepin

# Sections whose name isn't "%main%" defined a detect rule of image detection.
[archlinux]
# Section name is of no use, the display name is specified in "distro" option.
distro = Arch Linux
# listvers defined how many latest versions to display.
listvers = 1
# "location" specifies globbing pathname of the image. The path is relative to
# the HTTP root (aka "root" in [%main%] section). Not all images match it is
# considered, you can use "pattern" option below to filter.
location = archlinux/iso/latest/archlinux-*.iso
# "pattern" is a regular expression. If the pattern is found in image path
# found by "location", then the image is valid. Group capturing is to extract
# image info from image path name.
pattern = archlinux-(\d+\.\d+\.\d+)-(\w+).iso
# Following 3 options describes image info. "type" and "platform" is optional.
# $1, $2... here will be replaced by the string captured in above "pattern".
# Additionally, $0 will be replaced by the whole string matches the pattern.
# "version" is also used as the key to sort images of the same distro.
version = $1
type = CLI-only
platform = $2
# "key_by" should be used when images of different types or platform have
# different version number, see lineageOS below.

[ubuntu desktop]
distro = Ubuntu
listvers = 4
# If one glob is not enough for locating all images, you can use "location_N"
# to specify more globs. N start from 0 and must a sequence (0,1,2...).
location_0 = ubuntu-releases/[a-z]*/ubuntu-*-desktop-i386.iso
location_1 = ubuntu-releases/[a-z]*/ubuntu-*-desktop-amd64.iso
pattern = ubuntu-([0-9.]+)-desktop-(\w+).iso
version = $1
type = Desktop LiveDVD
platform = $2

[ubuntu server]
distro = Ubuntu
listvers = 4
# If one glob is not enough for locating all images, you can use "location_N"
# to specify more globs. N start from 0 and must a sequence (0,1,2...).
location_0 = ubuntu-releases/[a-z]*/ubuntu-*-server-i386.iso
location_1 = ubuntu-releases/[a-z]*/ubuntu-*-server-amd64.iso
pattern = ubuntu-([0-9.]+)-server-(\w+).iso
version = $1
type = Server
platform = $2

# You can apply multiple rules (sections) for the same distro like following
# four sections. They will be shown in the same submenu on our web page.
[ubuntukylin]
distro = Ubuntu 衍生版
listvers = 1
location_0 = ubuntu-cdimage/ubuntukylin/releases/[a-z]*/release/ubuntukylin-*-desktop-i386.iso
location_1 = ubuntu-cdimage/ubuntukylin/releases/[a-z]*/release/ubuntukylin-*-desktop-amd64.iso
pattern = ubuntukylin-([0-9.]+)-desktop-(\w+).iso
# Just a small trick. Constant string prefix won't affect sorting.
version = Ubuntu Kylin $1
platform = $2

[kubuntu]
distro = Ubuntu 衍生版
listvers = 1
location_0 = ubuntu-cdimage/kubuntu/releases/[a-z]*/release/kubuntu-*-desktop-i386.iso
location_1 = ubuntu-cdimage/kubuntu/releases/[a-z]*/release/kubuntu-*-desktop-amd64.iso
pattern = kubuntu-([0-9.]+)-desktop-(\w+).iso
version = Kubuntu $1
platform = $2


[lubuntu]
distro = Ubuntu 衍生版
listvers = 1
location_0 = ubuntu-cdimage/lubuntu/releases/[a-z]*/release/lubuntu-*-desktop-i386.iso
location_1 = ubuntu-cdimage/lubuntu/releases/[a-z]*/release/lubuntu-*-desktop-amd64.iso
pattern = lubuntu-([0-9.]+)-desktop-(\w+).iso
version = Lubuntu $1
platform = $2

[xubuntu]
distro = Ubuntu 衍生版
listvers = 1
location_0 = ubuntu-cdimage/xubuntu/releases/[a-z]*/release/xubuntu-*-desktop-i386.iso
location_1 = ubuntu-cdimage/xubuntu/releases/[a-z]*/release/xubuntu-*-desktop-amd64.iso
pattern = xubuntu-([0-9.]+)-desktop-(\w+).iso
version = Xubuntu $1
platform = $2

[ubuntu_gnome]
distro = Ubuntu 衍生版
listvers = 1
location_0 = ubuntu-cdimage/ubuntu-gnome/releases/[a-z]*/release/ubuntu-gnome-*-desktop-i386.iso
location_1 = ubuntu-cdimage/ubuntu-gnome/releases/[a-z]*/release/ubuntu-gnome-*-desktop-amd64.iso
pattern = ubuntu-gnome-([0-9.]+)-desktop-(\w+).iso
version = Ubuntu Gnome $1
platform = $2

[ubuntu_mate]
distro = Ubuntu 衍生版
listvers = 1
location_0 = ubuntu-cdimage/ubuntu-mate/releases/[a-z]*/release/ubuntu-mate-*-desktop-i386.iso
location_1 = ubuntu-cdimage/ubuntu-mate/releases/[a-z]*/release/ubuntu-mate-*-desktop-amd64.iso
pattern = ubuntu-mate-([0-9.]+)-desktop-(\w+).iso
version = Ubuntu Mate $1
platform = $2

[debian_cd]
distro = Debian
listvers = 1
location_0 = debian-cd/current/amd64/iso-cd/debian-*-amd64-*-CD-1.iso
location_1 = debian-cd/current/i386/iso-cd/debian-*-i386-*-CD-1.iso
pattern = debian-([0-9.]+)-(\w+)-(\w+)-CD-1.iso
version = $1
type = CD installer with $3
platform = $2

[debian_dvd]
distro = Debian
listvers = 1
location_0 = debian-cd/current/amd64/iso-dvd/debian-*-amd64-DVD-*.iso
location_1 = debian-cd/current/i386/iso-dvd/debian-*-i386-DVD-*.iso
pattern = debian-([0-9.]+)-(\w+)-DVD-(\d).iso
version = $1
type = DVD installer (Part $3)
platform = $2

[debian_live]
distro = Debian
listvers = 1
location_0 = debian-cd/current-live/amd64/iso-hybrid/debian-live-*-amd64-*.iso
location_1 = debian-cd/current-live/i386/iso-hybrid/debian-live-*-i386-*.iso
pattern = debian-live-([0-9.]+)-(\w+)-(\w+).iso
version = $1
type = Live CD with $3
platform = $2

[centos]
distro = CentOS
listvers = 2
location = centos/[0-9].*/isos/*/CentOS-[0-9]*.iso
pattern = CentOS-([0-9.]+)-(\w+)-((bin-)?\w+?)(-[0-9]+|).iso
version = $1
type = $3
platform = $2

[fedora]
distro = Fedora
listvers = 2
location_0 = fedora/releases/[1-9][0-9]/Workstation/*/iso/Fedora-Workstation-Live-*-[1-9][0-9]-*.iso
location_1 = fedora/releases/[1-9][0-9]/Spins/*/iso/Fedora-KDE-Live-*-[1-9][0-9]-*.iso
location_2 = fedora/releases/[1-9][0-9]/Spins/*/iso/Fedora-Xfce-Live-*-[1-9][0-9]-*.iso
pattern = Fedora-(Workstation|KDE|Xfce)-Live-(\w+)-(\d+)-.*\.iso
version = $3
type = $1
platform = $2

[opensuse_leap]
distro = openSUSE
listvers = 3
location_0 = opensuse/distribution/leap/[0-9][0-9].[0-9]/iso/openSUSE-Leap-[0-9][0-9].[0-9]-DVD-*.iso
pattern = openSUSE-Leap-([0-9.]+)-DVD-(\w+).iso
version = $1
platform = $2

[opensuse tumbleweed]
distro = openSUSE
listvers = 1
location_0 = opensuse/tumbleweed/iso/openSUSE-Tumbleweed-DVD-*-Current.iso
location_1 = opensuse/tumbleweed/iso/openSUSE-Tumbleweed-GNOME-Live-*-Current.iso
location_2 = opensuse/tumbleweed/iso/openSUSE-Tumbleweed-KDE-Live-*-Current.iso
pattern = openSUSE-Tumbleweed-(DVD|GNOME-Live|KDE-Live)-(\w+)-Current.iso
version = Tumbleweed
type = $1
platform = $2

[opensuse]
distro = openSUSE
listvers = 1
location_0 = opensuse/distribution/[0-9][0-9].[0-9]/iso/openSUSE-[0-9][0-9].[0-9]-DVD-*.iso
location_1 = opensuse/distribution/[0-9][0-9].[0-9]/iso/openSUSE-[0-9][0-9].[0-9]-GNOME-Live-*.iso
location_2 = opensuse/distribution/[0-9][0-9].[0-9]/iso/openSUSE-[0-9][0-9].[0-9]-KDE-Live-*.iso
pattern = openSUSE-([0-9.]+)-(DVD|GNOME-Live|KDE-Live)-(\w+).iso
version = $1
type = $2
platform = $3


[deepin]
distro = Deepin
listvers = 1
location = deepin-cd/1*/*.iso
pattern = deepin-([0-9.]+)-(\w+).iso
version = $1
platform = $2

[qt5]
distro = Qt 5
listvers = 1
location = qt/official_releases/qt/5.*/5.*/qt-opensource-*
pattern = qt-opensource-(.*?)-([\d.]+).(run|dmg|exe)
platform = $1
version = $2
category = app

[msys2]
distro = MSYS2
listvers = 1
location = msys2/distrib/msys2-*.exe
pattern = msys2-(i686|x86_64)-(latest).exe
platform = Windows
type = $1
version = $2
category = app

[virtualbox]
distro = VirtualBox
listvers = 1
location = virtualbox/virtualbox-*
pattern = virtualbox-(.*?)-(latest).(exe|dmg)
platform = $1
version = $2
category = app

[texlive]
distro = TeX 排版系统
listvers = 1
location = CTAN/systems/texlive/Images/texlive*.iso
pattern = texlive(\d+)-\d+.iso
platform = Windows & Linux
version = TeX Live $1
category = app

[mactex]
distro = TeX 排版系统
listvers = 1
location = CTAN/systems/mac/mactex/mactex-*.pkg
pattern = mactex-(\d+).pkg
platform = macOS
version = MacTeX $1
category = app

[miktex]
distro = TeX 排版系统
listvers = 1
location = CTAN/systems/win32/miktex/setup/basic-miktex-*
pattern = basic-miktex-((\d+.)+\d+)(|-)*(x64)*.exe
platform = Windows
type = $4
version = MikTeX $1
category = app

[anaconda3]
distro = Conda
listvers = 1
location = anaconda/archive/Anaconda*
pattern = (Anaconda3)-(\d+.\d+.\d+)-(Windows|Linux|MacOSX)-(x86_64|x86).\w+
platform = $3
type = $4
version = $1 $2
category = app

[anaconda2]
distro = Conda
listvers = 1
location = anaconda/archive/Anaconda*
pattern = (Anaconda2)-(\d+.\d+.\d+)-(Windows|Linux|MacOSX)-(x86_64|x86).\w+
platform = $3
type = $4
version = $1 $2
category = app

[miniconda3]
distro = Conda
listvers = 1
location = anaconda/miniconda/Miniconda*
pattern = (Miniconda3)-(\d+.\d+.\d+)-(Windows|Linux|MacOSX)-(x86_64|x86).\w+
platform = $3
type = $4
version = $1 $2
category = app

[miniconda2]
distro = Conda
listvers = 1
location = anaconda/miniconda/Miniconda*
pattern = (Miniconda2)-(\d+.\d+.\d+)-(Windows|Linux|MacOSX)-(x86_64|x86).\w+
platform = $3
type = $4
version = $1 $2
category = app

[lineageos]
distro = LineageOS
listvers = 1
location = lineage-rom/full/*/*/*.zip
pattern = lineage-([0-9.]+)-(\d+)-nightly-(\w+)-signed.zip
platform = $3
type = $1
version = $2
key_by = $1 $3
