import logging
import os
import traceback
+import subprocess
from . import actions
from . import config
args.sudo_timer = True
args.timeout = 1800
- if not os.path.isfile(args.config):
- if args.action and args.action != "init":
- 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)
else:
- args.log = "/tmp/tools.log"
+ # This branch is taken if:
+ # - waydroid is not yet initialized
+ # - waydroid is invoked with no command or with log
+ if not os.path.exists(args.log):
+ # The log could have been already created if init was used and failed, if its not the case we use a temporary one
+ args.log = "/tmp/tools.log"
tools_logging.init(args)
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:
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":