]> git.parisson.com Git - telecaster-server.git/commitdiff
add script args parser
authorGuillaume Pellerin <guillaume.pellerin@parisson.com>
Mon, 9 Jun 2025 07:58:01 +0000 (09:58 +0200)
committerGuillaume Pellerin <guillaume.pellerin@parisson.com>
Mon, 9 Jun 2025 07:58:40 +0000 (09:58 +0200)
bin/streaming/telecaster.py

index ad1f15b0803287a6441d55c2b5f2e1de74efcc3b..538efa360d212fd048adfab4b9cd6765d35398df 100755 (executable)
@@ -6,6 +6,7 @@ import subprocess
 import sys
 import yaml
 import time
+import argparse
 from threading import Thread
 from copy import deepcopy
 
@@ -116,11 +117,11 @@ class TeleCasterCommand:
 
 class TeleCaster(Thread):
 
-    def __init__(self, conf_file_path, verbose, dry_run):
+    def __init__(self, args):
         Thread.__init__(self)
-        conf_file = open(conf_file_path, 'r')
-        self.verbose = verbose
-        self.dry_run = dry_run
+        conf_file = open(args["config"], 'r')
+        self.verbose = args["verbose"]
+        self.dry_run = args["dry_run"]
         self.conf = yaml.safe_load(conf_file)["telecaster"]
         self.stream_types = ["audio", "video"]
         self.deefuzzer_video_conf_file = "/tmp/telecaster_deefuzzer_webm_monitor.yml"
@@ -273,18 +274,17 @@ class TeleCaster(Thread):
 
 
 def main():
-    verbose = False
-    dry_run = False
-
-    if len(sys.argv) >= 2:
-        tc = TeleCaster(sys.argv[-1], verbose, dry_run)
-        tc.start()
-    elif os.path.exists(DEFAULT_CONFIG_FILE):
-        tc = TeleCaster(DEFAULT_CONFIG_FILE, verbose, dry_run)
-        tc.start()
-    else:
-        sys.exit()
-
+    description ="""Start a TeleCaster streaming server"""
+    parser = argparse.ArgumentParser(description=description)
+    parser.add_argument("--config", help="config file", type=str)
+    parser.add_argument("--verbose", help="verbose", action="store_true")
+    parser.add_argument("--dry-run", help="dry run", action="store_true")
+    args = vars(parser.parse_args())
+    if os.path.exists(DEFAULT_CONFIG_FILE) and not args["config"]:
+        args['config'] = DEFAULT_CONFIG_FILE
+    print(args)
+    tc = TeleCaster(args)
+    tc.start()
 
 if __name__ == '__main__':
     main()