summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xBuildTools/GenerateAppCastFeeds.py7
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)