summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2016-11-16 10:21:40 (GMT)
committerTobias Markmann <tm@ayena.de>2016-11-16 10:21:40 (GMT)
commit8743d5714244a63d301d73fca622f648ac374771 (patch)
tree9478a49081df0ef6a0424af1fbe7d06f70178617
parent321754f6300e0d53b7c2a5cbc87865d5fe73b68a (diff)
downloadswift-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-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)