mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 00:25:08 +01:00
51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
#!/usr/bin/env python2.7
|
|
import os
|
|
import requests
|
|
import shutil
|
|
import subprocess
|
|
from requests.auth import HTTPBasicAuth
|
|
|
|
PACKAGECLOUD_TOKEN = os.getenv("DOKKU_PACKAGECLOUD_TOKEN")
|
|
|
|
|
|
def download_file(filename, url):
|
|
r = requests.get(url, stream=True)
|
|
with open(filename, "wb") as f:
|
|
shutil.copyfileobj(r.raw, f)
|
|
|
|
|
|
def upload_file(filename):
|
|
versions = ["noble"]
|
|
cmd_template = "package_cloud push dokku/dokku/ubuntu/{0} {1}"
|
|
for version in versions:
|
|
cmd = cmd_template.format(version, filename)
|
|
subprocess.call(cmd, shell=True)
|
|
|
|
|
|
def main():
|
|
auth = HTTPBasicAuth(PACKAGECLOUD_TOKEN, "")
|
|
base = requests.get(
|
|
"https://packagecloud.io/api/v1/repos/dokku/dokku/packages/deb/ubuntu/jammy.json",
|
|
auth=auth,
|
|
)
|
|
data = base.json()
|
|
urls = []
|
|
for package in data:
|
|
urls.append(package["versions_url"])
|
|
|
|
download_urls = {}
|
|
for url in urls:
|
|
base = requests.get("https://packagecloud.io{0}".format(url), auth=auth)
|
|
data = base.json()
|
|
for version in data:
|
|
download_urls["downloads/" + version["filename"]] = version["download_url"]
|
|
|
|
for filename, download_url in download_urls.items():
|
|
print("downloading {0}".format(filename))
|
|
download_file(filename, download_url)
|
|
upload_file(filename)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|