diff options
author | Ryan Lortie <desrt@desrt.ca> | 2011-08-15 11:49:46 -0400 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2011-08-15 11:55:51 -0400 |
commit | dc004cac68af221b8a098746b1cd0e2a7685ddbd (patch) | |
tree | 5a1961bac54eba778258043099d8dc119d1af0a0 | |
parent | 8c1e6f2ed3379fb93db7ba4067371f7b6ce3d348 (diff) | |
download | gconf-migration-changes.tar.gz |
GSettings migration: add --file argumentmigration-changes
Add a --file commandline argument to request running conversions from
an extra file (in addition to the normal conversions).
-rw-r--r-- | gsettings/gsettings-data-convert.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gsettings/gsettings-data-convert.c b/gsettings/gsettings-data-convert.c index 14ef3d05..b529476a 100644 --- a/gsettings/gsettings-data-convert.c +++ b/gsettings/gsettings-data-convert.c @@ -531,9 +531,11 @@ main (int argc, char *argv[]) GError *error; GHashTable *converted; GOptionContext *context; + const gchar *extra_file = NULL; GOptionEntry entries[] = { { "verbose", 0, 0, G_OPTION_ARG_NONE, &verbose, "show verbose messages", NULL }, { "dry-run", 0, 0, G_OPTION_ARG_NONE, &dry_run, "do not perform any changes", NULL }, + { "file", 0, 0, G_OPTION_ARG_STRING, &extra_file, "perform conversions from an extra file", NULL }, { NULL } }; @@ -555,6 +557,31 @@ main (int argc, char *argv[]) converted = load_state (&stored_mtime); + if (extra_file) + { + gchar *base; + + base = g_path_get_basename (extra_file); + + if (g_hash_table_lookup (converted, base)) + { + if (verbose) + g_print ("'%s' is already converted. Skipping.\n", base); + } + else + { + if (handle_file (extra_file)) + { + gchar *myname = g_strdup (base); + + g_hash_table_insert (converted, myname, myname); + changed = TRUE; + } + } + + g_free (base); + } + data_dirs = g_get_system_data_dirs (); for (i = 0; data_dirs[i]; i++) { |