Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/lts/create_download_urls.py')
-rwxr-xr-xrelease/lts/create_download_urls.py78
1 files changed, 78 insertions, 0 deletions
diff --git a/release/lts/create_download_urls.py b/release/lts/create_download_urls.py
new file mode 100755
index 00000000000..0d0b2554d2a
--- /dev/null
+++ b/release/lts/create_download_urls.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python3
+
+import argparse
+import datetime
+
+
+DESCRIPTION = ("This python script is used to generate the download urls "
+ "which we can copy-paste directly into the CMS of "
+ "www.blender.org")
+USAGE = "create_download_urls --version=2.83.7"
+# Used date format: "September 30, 2020"
+DATE_FORMAT = "%B %d, %Y"
+
+
+class Version:
+ """
+ Version class that extracts the major, minor and build from
+ a version string
+ """
+ def __init__(self, version: str):
+ self.version = version
+ v = version.split(".")
+ self.major = v[0]
+ self.minor = v[1]
+ self.build = v[2]
+
+ def __str__(self) -> str:
+ return self.version
+
+
+def get_download_file_names(version: Version):
+ yield f"blender-{version}-linux64.tar.xz"
+ yield f"blender-{version}-macOS.dmg"
+ yield f"blender-{version}-windows64.msi"
+ yield f"blender-{version}-windows64.zip"
+
+
+def get_download_url(version: Version, file_name: str) -> str:
+ """
+ Get the download url for the given version and file_name
+ """
+ return (f"https://www.blender.org/download/Blender{version.major}"
+ f".{version.minor}/{file_name}")
+
+
+def generate_html(version: Version) -> str:
+ """
+ Generate download urls and format them into an HTML string
+ """
+ today = datetime.date.today()
+ lines = []
+ lines.append(f"Released on {today.strftime(DATE_FORMAT)}.")
+ lines.append("")
+ lines.append("<ul>")
+ for file_name in get_download_file_names(version):
+ download_url = get_download_url(version, file_name)
+ lines.append(f" <li><a href=\"{download_url}\">{file_name}</a></li>")
+ lines.append("</ul>")
+
+ return "\n".join(lines)
+
+
+def print_download_urls(version: Version):
+ """
+ Generate the download urls and print them to the console.
+ """
+ print(generate_html(version))
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description=DESCRIPTION, usage=USAGE)
+ parser.add_argument("--version",
+ required=True,
+ help=("Version string in the form of {major}.{minor}."
+ "{build} (eg 2.83.7)"))
+ args = parser.parse_args()
+
+ print_download_urls(version=Version(args.version))