#!/usr/bin/env python2.2 ################################################# # Python script to install a new .desktop files # # Usage: # # - domenu file1 file2 file3 ... # # - domenu dir1 dir2 dir3 ... # # - domenu file1 dir1 ... # ################################################ä import sys, os, re from xdg.DesktopEntry import * from xdg.Exceptions import * def dodesktop(path): if os.path.isfile(path): print ">>> domenu: making " + path + " menu entry..." try: file = DesktopEntry() file.parse(path) file.validate("Errors") os.system("install -m0644 " + path + " " + D + "usr/share/menu/applications") except ValidationError, e: print e elif os.path.isdir(path): ls = os.listdir(path) for i in ls: dodesktop(path + i) D = os.getenv("D") FEATURES = os.getenv("FEATURES") os.system("install -d " + D + "usr/share/menu/applications") for i in range(1,len(sys.argv)): dodesktop(sys.argv[i]) if re.search("menu", FEATURES) and os.path.exists("/usr/bin/update-menus"): print ">>> updating menus..." os.putenv("SANDBOX_ON", "0") os.system("/usr/bin/update-menus") os.putenv("SANDBOX_ON", "1")