Rob Lanphier avatar Rob Lanphier committed c50f524

Added plist2json and json2plist support

Comments (0)

Files changed (1)

         fp.close()
         print json.dumps(foo, indent=4, sort_keys=True)
 
+    elif args[0] == 'json2plist':
+        import json
+        import plistlib
+
+        usage = """\
+Convert a file from json to plist.
+  usage: %prog json2plist [options] jsonfile\
+"""
+        subparser = optparse.OptionParser(usage=usage)
+        (options, subargs) = subparser.parse_args(args[1:])
+
+        fp = open(subargs[0])
+        jsondata = json.load(fp)
+        fp.close()
+        
+        print plistlib.writePlistToString(jsondata)
+
+    elif args[0] == 'plist2json':
+        import json
+        import plistlib
+
+        usage = """\
+Convert a file from json to plist.
+  usage: %prog plist2json [options] plistfile\
+"""
+        subparser = optparse.OptionParser(usage=usage)
+        (options, subargs) = subparser.parse_args(args[1:])
+
+        plistdata = plistlib.readPlist(subargs[0])
+        print json.dumps(plistdata, indent=4, sort_keys=True)
+
+
     elif args[0] == 'validate':
         import json
         import sys
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.