]> jfr.im git - yt-dlp.git/blobdiff - pyinst.py
Completely change project name to yt-dlp (#85)
[yt-dlp.git] / pyinst.py
index b78fa14fee47e0bd0d3c05dec2f3f3c905b05b44..005a5d9e2e820a8a937251de163148ef9452828b 100644 (file)
--- a/pyinst.py
+++ b/pyinst.py
@@ -1,52 +1,41 @@
+#!/usr/bin/env python
+# coding: utf-8
+
+from __future__ import unicode_literals
+import sys
+# import os
+import platform
+
 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 = ''
+arch = sys.argv[1] if len(sys.argv) > 1 else platform.architecture()[0][:2]
+assert arch in ('32', '64')
+print('Building %sbit version' % arch)
+_x86 = '_x86' if arch == '32' else ''
 
-if old_ver == ver:
-    if old_rev:
-        rev = int(old_rev) + 1
-    else:
-        rev = 1
+FILE_DESCRIPTION = 'Media Downloader%s' % (' (32 Bit)' if _x86 else '')
 
-_SEPARATOR = '-'
+# root_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+# print('Changing working directory to %s' % root_dir)
+# os.chdir(root_dir)
 
-version = _SEPARATOR.join(filter(None, [ver, str(rev)]))
+exec(compile(open('yt_dlp/version.py').read(), 'yt_dlp/version.py', 'exec'))
+VERSION = locals()['__version__']
 
-print(version)
+VERSION_LIST = VERSION.split('.')
+VERSION_LIST = list(map(int, VERSION_LIST)) + [0] * (4 - len(VERSION_LIST))
 
-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
+print('Version: %s%s' % (VERSION, _x86))
+print('Remember to update the version using devscipts\\update-version.py')
 
-version_file = VSVersionInfo(
+VERSION_FILE = VSVersionInfo(
     ffi=FixedFileInfo(
-        filevers=_ver_tuple,
-        prodvers=_ver_tuple,
+        filevers=VERSION_LIST,
+        prodvers=VERSION_LIST,
         mask=0x3F,
         flags=0x0,
         OS=0x4,
         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])])
+        StringFileInfo([
+            StringTable(
+                '040904B0', [
+                    StringStruct('Comments', 'yt-dlp%s Command Line Interface.' % _x86),
+                    StringStruct('CompanyName', 'https://github.com/yt-dlp'),
+                    StringStruct('FileDescription', FILE_DESCRIPTION),
+                    StringStruct('FileVersion', VERSION),
+                    StringStruct('InternalName', 'yt-dlp%s' % _x86),
+                    StringStruct(
+                        'LegalCopyright',
+                        'pukkandan.ytdlp@gmail.com | UNLICENSE',
+                    ),
+                    StringStruct('OriginalFilename', 'yt-dlp%s.exe' % _x86),
+                    StringStruct('ProductName', 'yt-dlp%s' % _x86),
+                    StringStruct('ProductVersion', '%s%s' % (VERSION, _x86)),
+                ])]),
+        VarFileInfo([VarStruct('Translation', [0, 1200])])
     ]
 )
 
 PyInstaller.__main__.run([
-    '--name=youtube-dlc',
+    '--name=yt-dlp%s' % _x86,
     '--onefile',
-    '--icon=win/icon/cloud.ico',
-    'youtube_dlc/__main__.py',
+    '--icon=devscripts/cloud.ico',
+    '--exclude-module=youtube_dl',
+    '--exclude-module=test',
+    '--exclude-module=ytdlp_plugins',
+    '--hidden-import=mutagen',
+    '--hidden-import=Crypto',
+    '--upx-exclude=vcruntime140.dll',
+    'yt_dlp/__main__.py',
 ])
-SetVersion('dist/youtube-dlc.exe', version_file)
+SetVersion('dist/yt-dlp%s.exe' % _x86, VERSION_FILE)