[glib/new-gsettings] Add --schema-id option to gsettings-schema-convert
- From: Vincent Untz <vuntz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/new-gsettings] Add --schema-id option to gsettings-schema-convert
- Date: Fri, 16 Apr 2010 18:52:48 +0000 (UTC)
commit 9c20ad6806777278e4b85c76cac427132fc0871f
Author: Vincent Untz <vuntz gnome org>
Date: Fri Apr 16 14:51:33 2010 -0400
Add --schema-id option to gsettings-schema-convert
This is useful for easier migration of gconf schemas.
gio/gsettings-schema-convert | 20 +++++++++++++++++---
1 files changed, 17 insertions(+), 3 deletions(-)
---
diff --git a/gio/gsettings-schema-convert b/gio/gsettings-schema-convert
index 117a505..0fd8149 100755
--- a/gio/gsettings-schema-convert
+++ b/gio/gsettings-schema-convert
@@ -580,9 +580,11 @@ def read_simple_schema(simple_schema_file):
######################################
-def read_gconf_schema(gconf_schema_file):
+def read_gconf_schema(gconf_schema_file, default_schema_id):
gsettings_schema_root = GSettingsSchemaRoot()
+ default_schema_id_count = 0
+
gconfschemafile_node = ET.parse(gconf_schema_file).getroot()
for schemalist_node in gconfschemafile_node.findall('schemalist'):
for schema_node in schemalist_node.findall('schema'):
@@ -621,7 +623,13 @@ def read_gconf_schema(gconf_schema_file):
break
if not gsettings_schema:
gsettings_schema = GSettingsSchema()
- gsettings_schema.id = 'FIXME'
+ if default_schema_id:
+ gsettings_schema.id = default_schema_id
+ if default_schema_id_count > 0:
+ gsettings_schema.id += '.FIXME-%s' % default_schema_id_count
+ default_schema_id_count += 1
+ else:
+ gsettings_schema.id = 'FIXME'
if schemas_only:
gsettings_schema.path = '/' + hierarchy[0] + '/'
else:
@@ -660,6 +668,8 @@ def main(args):
help="output file")
parser.add_option("-g", "--gconf", action="store_true", dest="gconf",
default=False, help="convert a gconf schema file")
+ parser.add_option("-i", "--schema-id", dest="schema_id",
+ help="schema ID to use by default when converting gconf schema file")
parser.add_option("-s", "--simple", action="store_true", dest="simple",
default=False, help="use the simple schema format as output (only for gconf schema conversion)")
parser.add_option("-x", "--xml", action="store_true", dest="xml",
@@ -685,6 +695,10 @@ def main(args):
else:
options.xml = True
+ if not options.gconf and options.schema_id:
+ print >> sys.stderr, 'Default chema ID can only be specified when converting a gconf schema.'
+ return 1
+
argfile = os.path.expanduser(args[0])
if not os.path.exists(argfile):
print >> sys.stderr, '%s does not exist.' % argfile
@@ -699,7 +713,7 @@ def main(args):
if options.gconf:
try:
- schema_root = read_gconf_schema(argfile)
+ schema_root = read_gconf_schema(argfile, options.schema_id)
except SyntaxError, e:
raise GSettingsSchemaConvertException('%s does not look like a gconf schema file: %s' % (argfile, e))
else:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]