feat: Add ability to sync dokku packages to a new version of ubuntu

This will allow us to quickly roll out support for future versions of the OS.

[ci skip]
This commit is contained in:
Jose Diaz-Gonzalez
2018-11-05 00:18:52 -05:00
parent ea2443a7c2
commit 07d64909a9

51
contrib/copy-packages Normal file
View File

@@ -0,0 +1,51 @@
#!/usr/bin/env python2.7
import os
import requests
import shutil
import subprocess
from requests.auth import HTTPBasicAuth
PACKAGECLOUD_API_TOKEN = os.getenv('DOKKU_PACKAGECLOUD_API_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 = [
"bionic",
]
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_API_TOKEN, '')
base = requests.get('https://packagecloud.io/api/v1/repos/dokku/dokku/packages/deb/ubuntu/trusty.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", filename
download_file(filename, download_url)
upload_file(filename)
if __name__ == "__main__":
main()