diff options
author | Stefano Karapetsas <[email protected]> | 2013-04-07 13:32:05 +0200 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2013-04-07 13:32:05 +0200 |
commit | 0f86ff8cb5e71c063b0976ae162e18a98056d181 (patch) | |
tree | a3f73dd2a528b1503dc19e3e0d72f34eea882e2f /mate-conf | |
parent | bbd33e26c62a26d038c1b0d6e1d05c1aa8b682a1 (diff) | |
download | mate-desktop-0f86ff8cb5e71c063b0976ae162e18a98056d181.tar.bz2 mate-desktop-0f86ff8cb5e71c063b0976ae162e18a98056d181.tar.xz |
mate-conf-import: Check if mateconf files exists and are valid before use them
Diffstat (limited to 'mate-conf')
-rwxr-xr-x | mate-conf/mate-conf-import | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/mate-conf/mate-conf-import b/mate-conf/mate-conf-import index 8d0aa55..5fe9c86 100755 --- a/mate-conf/mate-conf-import +++ b/mate-conf/mate-conf-import @@ -220,8 +220,11 @@ if os.path.exists(mateconf_panel_file): mateconf_obj_file = os.path.join(mateconf_user_path, "apps/panel/objects", obj, "%mateconf.xml") if not os.path.exists(mateconf_obj_file): continue - obj_tree = ElementTree.parse(mateconf_obj_file) - obj_root = obj_tree.getroot() + try: + obj_tree = ElementTree.parse(mateconf_obj_file) + obj_root = obj_tree.getroot() + except: + continue obj_id = gsettings_id(obj) obj_settings = Gio.Settings.new_with_path("org.mate.panel.object", "/org/mate/panel/objects/%s/" % obj_id) new_objects.append(obj_id) @@ -261,8 +264,11 @@ if os.path.exists(mateconf_panel_file): mateconf_app_file = os.path.join(mateconf_user_path, "apps/panel/applets", app, "%mateconf.xml") if not os.path.exists(mateconf_app_file): continue - app_tree = ElementTree.parse(mateconf_app_file) - app_root = app_tree.getroot() + try: + app_tree = ElementTree.parse(mateconf_app_file) + app_root = app_tree.getroot() + except: + continue app_id = gsettings_id(app) app_settings = Gio.Settings.new_with_path("org.mate.panel.object", "/org/mate/panel/objects/%s/" % app_id) new_objects.append(app_id) @@ -308,8 +314,13 @@ if os.path.exists(mateconf_panel_file): for toplevel in toplevels: debug_message("toplevel", toplevel) mateconf_toplevel_file = os.path.join(mateconf_user_path, "apps/panel/toplevels", toplevel, "%mateconf.xml") - toplevel_tree = ElementTree.parse(mateconf_toplevel_file) - toplevel_root = toplevel_tree.getroot() + if not os.path.exists(mateconf_toplevel_file): + continue + try: + toplevel_tree = ElementTree.parse(mateconf_toplevel_file) + toplevel_root = toplevel_tree.getroot() + except: + continue toplevel_id = gsettings_id(toplevel) toplevel_settings = Gio.Settings.new_with_path("org.mate.panel.toplevel", "/org/mate/panel/toplevels/%s/" % toplevel_id) new_toplevels.append(toplevel_id) |