summaryrefslogtreecommitdiff
path: root/tools/get_latest_iso.py
blob: 4a2ea9a89f111992f518d35ad9ae81064566b857 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env python3

import os
import sys
from lxml import html
from urllib.parse import unquote
import requests

BASE_URL = 'https://downloads.vyos.io/'
PAGE_URL = BASE_URL+'?dir=rolling/current/amd64'


def download():
    page = requests.get(PAGE_URL)
    tree = html.fromstring(page.content)
    path = '//*[@id="directory-listing"]/li/a[1]/@href'
    isos = [x for x in tree.xpath(path) if os.path.splitext(x)[1] == '.iso']
    latest_iso_url = os.path.join(BASE_URL, isos[-1])
    filename = unquote(os.path.basename(latest_iso_url))
    print(filename)
    if os.path.exists(filename):
        print("{} already exists".format(filename))
        sys.exit(0)
    r = requests.get(latest_iso_url)
    with open(filename, 'wb') as fd:
        for chunk in r.iter_content(chunk_size=128):
            fd.write(chunk)


if __name__ == '__main__':
    download()