]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/__init__.py
Remove unused python imports
[waydroid.git] / tools / __init__.py
index 65f0efc68be70abf7ecbbecd5b272c07c565ae54..819d54ac9a177d401c5cf4bcdbcc8e5c3507ef37 100644 (file)
@@ -5,6 +5,9 @@ import sys
 import logging
 import os
 import traceback
+import dbus.mainloop.glib
+import dbus
+import dbus.exceptions
 
 from . import actions
 from . import config
@@ -21,7 +24,6 @@ def main():
     # Wrap everything to display nice error messages
     args = None
     try:
-        os.umask(0o000)
         # Parse arguments, set up logging
         args = helpers.arguments()
         args.cache = {}
@@ -39,10 +41,19 @@ def main():
 
         tools_logging.init(args)
 
+        dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+        dbus.mainloop.glib.threads_init()
+        dbus_name_scope = None
+
         if not actions.initializer.is_initialized(args) and \
                 args.action and args.action not in ("init", "first-launch", "log"):
             if args.wait_for_init:
-                actions.wait_for_init(args)
+                try:
+                    dbus_name_scope = dbus.service.BusName("id.waydro.Container", dbus.SystemBus(), do_not_queue=True)
+                    actions.wait_for_init(args)
+                except dbus.exceptions.NameExistsException:
+                    print('ERROR: WayDroid service is already awaiting initialization')
+                    return 1
             else:
                 print('ERROR: WayDroid is not initialized, run "waydroid init"')
                 return 0
@@ -65,6 +76,12 @@ def main():
         elif args.action == "container":
             actionNeedRoot(args.action)
             if args.subaction == "start":
+                if dbus_name_scope is None:
+                    try:
+                        dbus_name_scope = dbus.service.BusName("id.waydro.Container", dbus.SystemBus(), do_not_queue=True)
+                    except dbus.exceptions.NameExistsException:
+                        print('ERROR: WayDroid container service is already running')
+                        return 1
                 actions.container_manager.start(args)
             elif args.subaction == "stop":
                 actions.container_manager.stop(args)
@@ -93,11 +110,9 @@ def main():
                     "Run waydroid {} -h for usage information.".format(args.action))
         elif args.action == "prop":
             if args.subaction == "get":
-                ret = helpers.props.get(args, args.key)
-                if ret:
-                    print(ret)
+                actions.prop.get(args)
             elif args.subaction == "set":
-                helpers.props.set(args, args.key, args.value)
+                actions.prop.set(args)
             else:
                 logging.info(
                     "Run waydroid {} -h for usage information.".format(args.action))