diff --git a/src/you_get/__main__.py b/src/you_get/__main__.py index 2847d8f7..b7ec6f04 100644 --- a/src/you_get/__main__.py +++ b/src/you_get/__main__.py @@ -20,6 +20,7 @@ _help = """Usage: {} [OPTION]... [URL]... TODO """.format(script_name) +# TBD def main_dev(**kwargs): """Main entry point. you-get-dev @@ -88,7 +89,7 @@ def main(**kwargs): you-get (legacy) """ from .common import main - main() + main(**kwargs) if __name__ == '__main__': main() diff --git a/src/you_get/common.py b/src/you_get/common.py index 7df48c43..0f5080eb 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -91,6 +91,7 @@ from importlib import import_module from .version import __version__ from .util import log, term +from .util.git import get_version from .util.strings import get_filename, unescape_html from . import json_output as json_output_ @@ -981,8 +982,11 @@ def download_main(download, download_playlist, urls, playlist, **kwargs): else: download(url, **kwargs) -def script_main(script_name, download, download_playlist = None): - version = 'You-Get %s, a video downloader.' % __version__ +def script_main(script_name, download, download_playlist, **kwargs): + def version(): + log.i('version %s' % get_version(kwargs['repo_path'] + if 'repo_path' in kwargs else __version__)) + help = 'Usage: %s [OPTION]... [URL]...\n' % script_name help += '''\nStartup options: -V | --version Display the version and exit. @@ -1035,10 +1039,10 @@ def script_main(script_name, download, download_playlist = None): traceback = False for o, a in opts: if o in ('-V', '--version'): - print(version) + version() sys.exit() elif o in ('-h', '--help'): - print(version) + version() print(help) sys.exit() elif o in ('-f', '--force'): @@ -1176,5 +1180,5 @@ def any_download_playlist(url, **kwargs): m, url = url_to_module(url) m.download_playlist(url, **kwargs) -def main(): - script_main('you-get', any_download, any_download_playlist) +def main(**kwargs): + script_main('you-get', any_download, any_download_playlist, **kwargs) diff --git a/src/you_get/util/git.py b/src/you_get/util/git.py index 6891709e..9e4a1001 100644 --- a/src/you_get/util/git.py +++ b/src/you_get/util/git.py @@ -1,6 +1,8 @@ #!/usr/bin/env python import os +import subprocess +from ..version import __version__ def get_head(repo_path): """Get (branch, commit) from HEAD of a git repo.""" @@ -11,3 +13,21 @@ def get_head(repo_path): return branch, commit except: return None + +def get_version(repo_path): + try: + version = __version__.split('.') + major, minor = version[0], version[1] + + p = subprocess.Popen(['git', 'rev-list', 'HEAD', '--count'], + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + raw, err = p.communicate() + c_head = int(raw.decode('ascii')) + q = subprocess.Popen(['git', 'rev-list', 'master', '--count'], + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + raw, err = q.communicate() + c_master = int(raw.decode('ascii')) + cc = c_head - c_master + return '%s.%s.%s' % (major, minor, cc) + except: + return __version__ diff --git a/src/you_get/version.py b/src/you_get/version.py index fe141a99..355ac932 100644 --- a/src/you_get/version.py +++ b/src/you_get/version.py @@ -1,4 +1,4 @@ #!/usr/bin/env python script_name = 'you-get' -__version__ = '0.3.36' +__version__ = '0.4.0'