diff options
author | Tobias Markmann <tm@ayena.de> | 2016-11-16 10:21:40 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2016-11-16 10:21:40 (GMT) |
commit | 8743d5714244a63d301d73fca622f648ac374771 (patch) | |
tree | 9478a49081df0ef6a0424af1fbe7d06f70178617 | |
parent | 321754f6300e0d53b7c2a5cbc87865d5fe73b68a (diff) | |
download | swift-8743d5714244a63d301d73fca622f648ac374771.zip swift-8743d5714244a63d301d73fca622f648ac374771.tar.bz2 |
Add output folder option to GenerateAppCastFeeds.py
Test-Information:
Verified that the tool writes to the specified output folder
on macOS 10.12.1.
Change-Id: I91157dda1031632c1e536ae6b509f08a69dce6c3
-rwxr-xr-x | BuildTools/GenerateAppCastFeeds.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/BuildTools/GenerateAppCastFeeds.py b/BuildTools/GenerateAppCastFeeds.py index 3b4bf42..204961b 100755 --- a/BuildTools/GenerateAppCastFeeds.py +++ b/BuildTools/GenerateAppCastFeeds.py @@ -89,62 +89,63 @@ def writeAppcastFile(filename, title, description, regexPattern, appcastURL, rel <enclosure url="{{ item.url }}" sparkle:version="{{ item.version }}" sparkle:shortVersionString="{{ item.shortVersion }}" length="{{ item.sizeInBytes }}" type="application/octet-stream" /> </item> {% endfor %}</channel> </rss>''') matchingReleases = [i for i in releases if re.match(regexPattern, i.version)] matchingReleases = matchingReleases[:2] # only include the first two matches in the appcast appcastContent = template.render(title=title, appcast_url=appcastURL, description=description, releases=matchingReleases) contentParsesOK = False try: x = ET.fromstring(appcastContent) contentParsesOK = True except : contentParsesOK = False if contentParsesOK: with open(filename, 'w') as file: file.write(appcastContent) else: print("Failed to generate valid appcast feed %s." % filename) parser = argparse.ArgumentParser(description='Generate stable/testing/development appcast feeds for Sparkle updater.') parser.add_argument('downloadsFolder', type=str, help="e.g. /Users/foo/website/downloads/") parser.add_argument('downloadsURL', type=str, help="e.g. https://swift.im/downloads/") +parser.add_argument('outputFolder', type=str, help="e.g. /Users/foo/website/downloads/") args = parser.parse_args() releasesPath = os.path.join(args.downloadsFolder, "releases") developmentMacPath = os.path.join(args.downloadsFolder, "development", "mac") manualReleases = getReleaseFilesInReleasesFolder(releasesPath, urlparse.urljoin(args.downloadsURL, "releases/"), "*.dmg") manualReleases.sort(key=lambda release: release.date, reverse=True) automaticReleases = manualReleases automaticReleases.extend(getReleaseFilesInDevelopmentFolder(developmentMacPath, urlparse.urljoin(args.downloadsURL, "development/mac/"), "*.dmg")) automaticReleases.sort(key=lambda release: release.date, reverse=True) -writeAppcastFile(filename=os.path.join(args.downloadsFolder, "swift-stable-appcast-mac.xml"), +writeAppcastFile(filename=os.path.join(args.outputFolder, "swift-stable-appcast-mac.xml"), title="Swift Stable Releases", description="", regexPattern="^Swift\-\d+(\.\d+)?(\.\d+)?$", appcastURL=urlparse.urljoin(args.downloadsURL, "swift-stable-appcast-mac.xml"), releases=manualReleases) -writeAppcastFile(filename=os.path.join(args.downloadsFolder, "swift-testing-appcast-mac.xml"), +writeAppcastFile(filename=os.path.join(args.outputFolder, "swift-testing-appcast-mac.xml"), title="Swift Testing Releases", description="", regexPattern="^Swift\-\d+(\.\d+)?(\.\d+)?(beta\d+)?(rc\d+)?$", appcastURL=urlparse.urljoin(args.downloadsURL, "swift-testing-appcast-mac.xml"), releases=manualReleases) -writeAppcastFile(filename=os.path.join(args.downloadsFolder, "swift-development-appcast-mac.xml"), +writeAppcastFile(filename=os.path.join(args.outputFolder, "swift-development-appcast-mac.xml"), title="Swift Development Releases", description="", regexPattern="^Swift\-\d+(\.\d+)?(\.\d+)?(alpha)?(beta\d+)?(rc\d+)?(-dev\d+)?$", appcastURL=urlparse.urljoin(args.downloadsURL, "swift-development-appcast-mac.xml"), releases=automaticReleases) |