From 26304412eee96bb85d9a1c853d4125241c8f4048 Mon Sep 17 00:00:00 2001
From: Yuanle Song <sylecn@gmail.com>
Date: Thu, 7 Mar 2019 14:15:27 +0800
Subject: [PATCH] v0.7.0 make -o and URL required params.

use action=version for --version support, this allow me to make -o and
URL required params.
---
 README.rst                 | 15 +++++++++------
 m3u8downloader/__init__.py |  2 +-
 m3u8downloader/main.py     | 22 ++++++++--------------
 3 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/README.rst b/README.rst
index 6cc69d2..bfe3b3b 100644
--- a/README.rst
+++ b/README.rst
@@ -40,22 +40,25 @@ Here is built-in command line help:
 
 .. code-block:: bash
 
-   $ downloadm3u8 --help
-   usage: downloadm3u8 [-h] [--version] [--output OUTPUT] [--tempdir TEMPDIR]
-                       [url]
+   usage: m3u8downloader [-h] [--version] [--debug] --output OUTPUT
+                         [--tempdir TEMPDIR] [--concurrency N]
+                         URL
    
    download video at m3u8 url
    
    positional arguments:
-     url                   the m3u8 url
+     URL                   the m3u8 url
    
    optional arguments:
      -h, --help            show this help message and exit
-     --version             print version
+     --version             show program's version number and exit
+     --debug               enable debug log
      --output OUTPUT, -o OUTPUT
-                           target video filename
+                           output video filename, e.g. ~/Downloads/foo.mp4
      --tempdir TEMPDIR     temp dir, used to store .ts files before combing them
                            into mp4
+     --concurrency N, -c N
+                           number of fragments to download at a time
 
 Documentation
 -------------
diff --git a/m3u8downloader/__init__.py b/m3u8downloader/__init__.py
index 906d362..49e0fc1 100644
--- a/m3u8downloader/__init__.py
+++ b/m3u8downloader/__init__.py
@@ -1 +1 @@
-__version__ = "0.6.0"
+__version__ = "0.7.0"
diff --git a/m3u8downloader/main.py b/m3u8downloader/main.py
index ae0e593..d0e6eff 100644
--- a/m3u8downloader/main.py
+++ b/m3u8downloader/main.py
@@ -28,6 +28,7 @@ import platform
 import requests
 from wells.utils import retry
 
+import m3u8downloader
 import m3u8downloader.configlogger    # pylint: disable=unused-import
 
 logger = logging.getLogger(__name__)
@@ -341,29 +342,22 @@ class M3u8Downloader:
 
 
 def main():
-    parser = argparse.ArgumentParser(description="download video at m3u8 url")
-    parser.add_argument('--version', action='store_true', help='print version')
+    parser = argparse.ArgumentParser(prog='m3u8downloader',
+                                     description="download video at m3u8 url")
+    parser.add_argument('--version', action='version',
+                        version='%(prog)s ' + m3u8downloader.__version__)
     parser.add_argument('--debug', action='store_true', help='enable debug log')
-    parser.add_argument('--output', '-o', help='target video filename')
+    parser.add_argument('--output', '-o', required=True,
+                        help='output video filename, e.g. ~/Downloads/foo.mp4')
     parser.add_argument(
         '--tempdir', default=os.path.join(get_default_cache_dir(),
                                           'm3u8downloader'),
         help='temp dir, used to store .ts files before combing them into mp4')
     parser.add_argument('--concurrency', '-c', metavar='N', default=5,
                         help='number of fragments to download at a time')
-    parser.add_argument('url', nargs='?', help='the m3u8 url')
+    parser.add_argument('url', metavar='URL', help='the m3u8 url')
     args = parser.parse_args()
 
-    if args.version:
-        import m3u8downloader
-        print("m3u8downloader " + m3u8downloader.__version__)
-        return
-
-    if not args.url:
-        print("URL is required")
-        parser.print_help()
-        sys.exit(1)
-
     if args.debug:
         logging.getLogger("").setLevel(logging.DEBUG)
 
-- 
GitLab