appmenus: minor code style fixes

Use 'in' instead of has_key, remove unused code.
This commit is contained in:
Marek Marczykowski-Górecki 2015-05-02 20:14:30 +02:00
parent 2a08357fa4
commit 59d9dc0307
2 changed files with 10 additions and 15 deletions

View File

@ -73,7 +73,6 @@ def QubesVm_appmenus_create(self, verbose=False, source_template=None):
if self.internal: if self.internal:
return return
vmtype = None
if self.is_netvm(): if self.is_netvm():
vmtype = 'servicevms' vmtype = 'servicevms'
elif self.is_template(): elif self.is_template():
@ -105,7 +104,6 @@ def QubesVm_appmenus_create(self, verbose=False, source_template=None):
def QubesVm_appmenus_remove(self): def QubesVm_appmenus_remove(self):
vmtype = None
if self.is_netvm(): if self.is_netvm():
vmtype = 'servicevms' vmtype = 'servicevms'
elif self.is_template(): elif self.is_template():

View File

@ -52,7 +52,7 @@ fields_regexp = {
"Icon": re.compile(r"^[a-zA-Z0-9/_.-]*$"), "Icon": re.compile(r"^[a-zA-Z0-9/_.-]*$"),
} }
CATEGORIES_WHITELIST = set([ CATEGORIES_WHITELIST = {
# Main Categories # Main Categories
# http://standards.freedesktop.org/menu-spec/1.1/apa.html 20140507 # http://standards.freedesktop.org/menu-spec/1.1/apa.html 20140507
'AudioVideo', 'Audio', 'Video', 'Development', 'Education', 'Game', 'AudioVideo', 'Audio', 'Video', 'Development', 'Education', 'Game',
@ -90,7 +90,8 @@ CATEGORIES_WHITELIST = set([
# Reserved Categories (not whitelisted) # Reserved Categories (not whitelisted)
# http://standards.freedesktop.org/menu-spec/1.1/apas03.html # http://standards.freedesktop.org/menu-spec/1.1/apas03.html
# 'Screensaver', 'TrayIcon', 'Applet', 'Shell', # 'Screensaver', 'TrayIcon', 'Applet', 'Shell',
]) }
def sanitise_categories(untrusted_value): def sanitise_categories(untrusted_value):
untrusted_categories = (c.strip() for c in untrusted_value.split(';') if c) untrusted_categories = (c.strip() for c in untrusted_value.split(';') if c)
@ -137,7 +138,6 @@ def get_appmenus(vm):
if appmenus_line_count == 0: if appmenus_line_count == 0:
raise QubesException("Line count limit exceeded") raise QubesException("Line count limit exceeded")
row_no = 0
appmenus = {} appmenus = {}
line_rx = re.compile( line_rx = re.compile(
r"([a-zA-Z0-9.()_-]+.desktop):([a-zA-Z0-9-]+(?:\[[a-zA-Z@_]+\])?)=(.*)") r"([a-zA-Z0-9.()_-]+.desktop):([a-zA-Z0-9-]+(?:\[[a-zA-Z@_]+\])?)=(.*)")
@ -162,7 +162,7 @@ def get_appmenus(vm):
# TODO add key-dependent asserts # TODO add key-dependent asserts
# Look only at predefined keys # Look only at predefined keys
if fields_regexp.has_key(untrusted_key): if untrusted_key in fields_regexp:
if fields_regexp[untrusted_key].match(untrusted_value): if fields_regexp[untrusted_key].match(untrusted_value):
# now values are sanitized # now values are sanitized
key = untrusted_key key = untrusted_key
@ -171,7 +171,7 @@ def get_appmenus(vm):
else: else:
value = untrusted_value value = untrusted_value
if not appmenus.has_key(filename): if filename not in appmenus:
appmenus[filename] = {} appmenus[filename] = {}
appmenus[filename][key] = value appmenus[filename][key] = value
@ -187,7 +187,7 @@ def get_appmenus(vm):
def create_template(path, values): def create_template(path, values):
# check if all required fields are present # check if all required fields are present
for key in required_fields: for key in required_fields:
if not values.has_key(key): if key not in values:
print >> sys.stderr, "Warning: not creating/updating '%s' " \ print >> sys.stderr, "Warning: not creating/updating '%s' " \
"because of missing '%s' key" % ( "because of missing '%s' key" % (
path, key) path, key)
@ -208,11 +208,11 @@ def create_template(path, values):
desktop_entry += "Icon=%XDGICON%\n" desktop_entry += "Icon=%XDGICON%\n"
for key in ["Name", "GenericName"]: for key in ["Name", "GenericName"]:
if values.has_key(key): if key in values:
desktop_entry += "{0}=%VMNAME%: {1}\n".format(key, values[key]) desktop_entry += "{0}=%VMNAME%: {1}\n".format(key, values[key])
for key in ["Comment", "Categories"]: for key in ["Comment", "Categories"]:
if values.has_key(key): if key in values:
desktop_entry += "{0}={1}\n".format(key, values[key]) desktop_entry += "{0}={1}\n".format(key, values[key])
desktop_entry += "Exec=qvm-run -q --tray -a %VMNAME% -- {0}\n".format( desktop_entry += "Exec=qvm-run -q --tray -a %VMNAME% -- {0}\n".format(
@ -280,7 +280,6 @@ def main():
"running VM - start it first" "running VM - start it first"
exit(1) exit(1)
new_appmenus = {}
if env_vmname is None or options.force_rpc: if env_vmname is None or options.force_rpc:
new_appmenus = get_appmenus(vm) new_appmenus = get_appmenus(vm)
else: else:
@ -311,8 +310,6 @@ def main():
if 'Icon' in new_appmenus[appmenu_file]: if 'Icon' in new_appmenus[appmenu_file]:
# the following line is used for time comparison # the following line is used for time comparison
# del new_appmenus[appmenu_file]['Icon']
icondest = os.path.join(vm.appmenus_template_icons_dir, icondest = os.path.join(vm.appmenus_template_icons_dir,
os.path.splitext(appmenu_file)[0] + '.png') os.path.splitext(appmenu_file)[0] + '.png')
@ -348,7 +345,7 @@ def main():
if not appmenu_file.endswith('.desktop'): if not appmenu_file.endswith('.desktop'):
continue continue
if not new_appmenus.has_key(appmenu_file): if appmenu_file not in new_appmenus:
if options.verbose: if options.verbose:
print >> sys.stderr, "---> Removing {0}".format(appmenu_file) print >> sys.stderr, "---> Removing {0}".format(appmenu_file)
os.unlink(os.path.join(vm.appmenus_templates_dir, appmenu_file)) os.unlink(os.path.join(vm.appmenus_templates_dir, appmenu_file))