aboutsummaryrefslogtreecommitdiffstats
path: root/pyinst.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyinst.py')
-rw-r--r--pyinst.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/pyinst.py b/pyinst.py
new file mode 100644
index 000000000..b78fa14fe
--- /dev/null
+++ b/pyinst.py
@@ -0,0 +1,89 @@
+from PyInstaller.utils.win32.versioninfo import (
+ VarStruct, VarFileInfo, StringStruct, StringTable,
+ StringFileInfo, FixedFileInfo, VSVersionInfo, SetVersion,
+)
+import PyInstaller.__main__
+
+from datetime import datetime
+
+FILE_DESCRIPTION = 'Media Downloader'
+
+exec(compile(open('youtube_dlc/version.py').read(), 'youtube_dlc/version.py', 'exec'))
+
+_LATEST_VERSION = locals()['__version__']
+
+_OLD_VERSION = _LATEST_VERSION.rsplit("-", 1)
+
+if len(_OLD_VERSION) > 0:
+ old_ver = _OLD_VERSION[0]
+
+old_rev = ''
+if len(_OLD_VERSION) > 1:
+ old_rev = _OLD_VERSION[1]
+
+ver = f'{datetime.today():%Y.%m.%d}'
+rev = ''
+
+if old_ver == ver:
+ if old_rev:
+ rev = int(old_rev) + 1
+ else:
+ rev = 1
+
+_SEPARATOR = '-'
+
+version = _SEPARATOR.join(filter(None, [ver, str(rev)]))
+
+print(version)
+
+version_list = ver.split(".")
+_year, _month, _day = [int(value) for value in version_list]
+_rev = 0
+if rev:
+ _rev = rev
+_ver_tuple = _year, _month, _day, _rev
+
+version_file = VSVersionInfo(
+ ffi=FixedFileInfo(
+ filevers=_ver_tuple,
+ prodvers=_ver_tuple,
+ mask=0x3F,
+ flags=0x0,
+ OS=0x4,
+ fileType=0x1,
+ subtype=0x0,
+ date=(0, 0),
+ ),
+ kids=[
+ StringFileInfo(
+ [
+ StringTable(
+ "040904B0",
+ [
+ StringStruct("Comments", "Youtube-dlc Command Line Interface."),
+ StringStruct("CompanyName", "theidel@uni-bremen.de"),
+ StringStruct("FileDescription", FILE_DESCRIPTION),
+ StringStruct("FileVersion", version),
+ StringStruct("InternalName", "youtube-dlc"),
+ StringStruct(
+ "LegalCopyright",
+ "theidel@uni-bremen.de | UNLICENSE",
+ ),
+ StringStruct("OriginalFilename", "youtube-dlc.exe"),
+ StringStruct("ProductName", "Youtube-dlc"),
+ StringStruct("ProductVersion", version + " | git.io/JUGsM"),
+ ],
+ )
+ ]
+ ),
+ VarFileInfo([VarStruct("Translation", [0, 1200])])
+ ]
+)
+
+PyInstaller.__main__.run([
+ '--name=youtube-dlc',
+ '--onefile',
+ '--icon=win/icon/cloud.ico',
+ 'youtube_dlc/__main__.py',
+])
+SetVersion('dist/youtube-dlc.exe', version_file)