#!/usr/bin/python from optparse import OptionParser import re import urlparse from launchpadlib.launchpad import Launchpad from subprocess import call qt_sources = {"qtpim-opensource-src": 1, "qtsystems-opensource-src": 1, "qtbase-opensource-src": 1, "qtdeclarative-opensource-src": 1, "qtmultimedia-opensource-src": 1, "qtpim-opensource-src": 1, "qtmultimedia-opensource-src": 1, "qt3d-opensource-src": 0, "qtfeedback-opensource-src": 0, "qtlocation-opensource-src": 0, "qtscript-opensource-src": 0, "qtsensors-opensource-src": 0, "qtsvg-opensource-src": 0, "qttools-opensource-src": 0, "qtwebsockets-opensource-src": 0, "qtxmlpatterns-opensource-src": 0, "qtquickcontrols-opensource-src": 0, "qtconnectivity-opensource-src": 0, "qtimageformats-opensource-src": 0, "qtgraphicaleffects-opensource-src": 0, "qtserialport-opensource-src": 0, "qtenginio-opensource-src": 0 } def create_webroot_url_from_self_link(self_link): scheme, netloc, _, _, _ = urlparse.urlsplit(self_link) netloc = netloc.lstrip("api.") return u"%s://%s/" %(scheme, netloc) def get_dsc(archive, package, series): re_version = re.compile(r"^\d+\:") x = archive.getPublishedSources(exact_match=True, source_name=package, distro_series=series) webroot = create_webroot_url_from_self_link(archive.self_link) version = x[0].source_package_version version = re_version.sub("", version, 1) if archive.owner.name == "ubuntu-archive": yield "%subuntu/+archive/primary/+files/%s_%s.dsc" \ %(webroot, x[0].source_package_name, version) else: yield "%s/~ci-train-ppa-service/+archive/ubuntu/stable-phone-overlay/+files/%s_%s.dsc" \ %(webroot, x[0].source_package_name, version) def main(): parser = OptionParser(usage="usage: %prog [options] source ...") parser.add_option( "-l", "--launchpad", dest="launchpad_instance", default="production") options, args = parser.parse_args() launchpad = Launchpad.login_anonymously('just testing', 'production') ubuntu = launchpad.distributions["ubuntu"] distro_archive = ubuntu.main_archive overlay_archive = launchpad.people["ci-train-ppa-service"].getPPAByName(name="stable-phone-overlay") series = ubuntu.getSeries(name_or_version="vivid") for qt_source_package, source in qt_sources.iteritems(): if source == 1: archive = overlay_archive elif source == 0: archive = distro_archive re_version = re.compile(r"^\d+\:") x = archive.getPublishedSources(exact_match=True, source_name=qt_source_package, distro_series=series)[0].source_package_version generator = get_dsc(archive, qt_source_package, series) for i in generator: call(["dget", i]) main()