grammar hammer
[mikachu/openbox.git] / tools / xdg-autostart / xdg-autostart
index 6cee134..5885550 100755 (executable)
 ME="xdg-autostart"
 VERSION="1.0"
 
-from xdg import BaseDirectory
-from xdg.DesktopEntry import DesktopEntry
-from xdg.Exceptions import ParsingError
 import os, glob, sys
+try:
+    from xdg import BaseDirectory
+    from xdg.DesktopEntry import DesktopEntry
+    from xdg.Exceptions import ParsingError
+except ImportError:
+    print
+    print "ERROR:", ME, "requires PyXDG to be installed"
+    print
+    sys.exit(1)
 
 def main(argv=sys.argv):
     if "--help" in argv[1:]:
@@ -154,8 +160,8 @@ class AutostartFile():
         if self.de.getPath():
             os.chdir(self.de.getPath())
         if self.shouldRun(envs):
-            print "Running autostart file: " + self.path
-            os.system(self.de.getExec());
+            args = ["/bin/sh", "-c", "exec " + self.de.getExec()]
+            os.spawnv(os.P_NOWAIT, args[0], args);
         os.chdir(here)
 
 def show_help():
@@ -172,7 +178,7 @@ def show_help():
     print "  --version     Show version and copyright information"
     print
     print "ENVIRONMENT specifies a list of environments for which to run autostart"
-    print "applications for.  If none are specified, only applications which do not "
+    print "applications.  If none are specified, only applications which do not "
     print "limit themselves to certain environments will be run."
     print
     print "ENVIRONMENT can be one or more of:"