]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/__init__.py
Add first-launch command
[waydroid.git] / tools / __init__.py
index 2afdf42532af1dc71022c377cdf227025d61c81f..df427524901becd9d281269006948f4df45611e6 100644 (file)
@@ -5,6 +5,7 @@ import sys
 import logging
 import os
 import traceback
+import subprocess
 
 from . import actions
 from . import config
@@ -31,10 +32,16 @@ def main():
         args.sudo_timer = True
         args.timeout = 1800
 
-        if not os.path.isfile(args.config):
-            if args.action and (args.action != "init" and args.action != "log"):
-                print('ERROR: WayDroid is not initialized, run "waydroid init"')
-                return 0
+        if not actions.initializer.is_initialized(args):
+            if args.action and (args.action not in ("init", "first-launch", "log")):
+                if not args.wait_for_init:
+                    print('ERROR: WayDroid is not initialized, run "waydroid init"')
+                    return 0
+
+                print('WayDroid waiting for initialization...')
+                while helpers.ipc.listen(channel="init") != "done":
+                    pass
+
             elif os.geteuid() == 0 and args.action == "init":
                 if not os.path.exists(args.work):
                     os.mkdir(args.work)
@@ -85,6 +92,8 @@ def main():
                 actions.app_manager.remove(args)
             elif args.subaction == "launch":
                 actions.app_manager.launch(args)
+            elif args.subaction == "intent":
+                actions.app_manager.intent(args)
             elif args.subaction == "list":
                 actions.app_manager.list(args)
             else:
@@ -108,6 +117,10 @@ def main():
             helpers.lxc.logcat(args)
         elif args.action == "show-full-ui":
             actions.app_manager.showFullUI(args)
+        elif args.action == "first-launch":
+            subprocess.run(["pkexec", sys.argv[0], "init", "--gui"])
+            if actions.initializer.is_initialized(args):
+                actions.app_manager.showFullUI(args)
         elif args.action == "status":
             actions.status.print_status(args)
         elif args.action == "log":