diff options
-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) |