From ac3b5306cac73f1a62af2d36622a9d0fdc19d68b Mon Sep 17 00:00:00 2001
From: Rahix <rahix@rahix.de>
Date: Thu, 17 Aug 2023 21:11:21 +0200
Subject: [PATCH] sim: Use argparse instead of hack arg parsing

---
 .gitlab-ci.yml |  2 +-
 sim/run.py     | 24 ++++++++++++++++++------
 2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8a735b120f..4ee075e06a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -55,7 +55,7 @@ build:
 simulate:
   stage: build
   script:
-    - python3 sim/run.py screenshot
+    - python3 sim/run.py --screenshot
   artifacts:
     expose_as: 'Smulator Screenshot'
     paths: ['flow3r.png']
diff --git a/sim/run.py b/sim/run.py
index ef9df48e8e..eae0f00072 100644
--- a/sim/run.py
+++ b/sim/run.py
@@ -6,6 +6,7 @@ import importlib.util
 import os
 import sys
 import builtins
+import argparse
 
 
 projectpath = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
@@ -112,13 +113,24 @@ def _stat(path):
 
 os.stat = _stat
 
-if len(sys.argv) >= 2 and sys.argv[1] == "screenshot":
+
+def sim_main():
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--screenshot", action="store_true", default=False)
+    parser.add_argument("override_app", nargs="?")
+    args = parser.parse_args()
+
     import _sim
 
-    _sim.SCREENSHOT = True
-elif len(sys.argv) == 2:
-    import st3m.run
+    _sim.SCREENSHOT = args.screenshot
+
+    if args.override_app is not None:
+        import st3m.run
+
+        st3m.run.override_main_app = args.override_app
+
+    import main
 
-    st3m.run.override_main_app = sys.argv[1]
 
-import main
+if __name__ == "__main__":
+    sim_main()
-- 
GitLab