Quick JSON to Plist Script
I need to do some gesture recognition in an iPhone app I'm working on and remembered hearing about GLGestureRecognizer. It looked promising, so I grabbed it from GitHub and took a look at the project. It comes with a JSON configuration file and requires (but does not include) TouchJSON to parse it. It seemed silly to include an entire JSON parsing library to read in a config file that could just as easily be an Apple-standard plist file (and thus trivial to load), so I decided to write a quickie script to convert it. This is the result:
#!/usr/bin/env ruby require 'rubygems' require 'json' require 'plist' outfile = case ARGV.size when 0 text = ARGF.read self when 1 text = File.read(ARGV.first) newname = ARGV.first.sub(/(\.json$|.js$|$)/, '.plist') File.open(newname, 'w') when 2 text = File.read(ARGV.first) File.open(ARGV.last, 'w') else STDERR.puts "Usage: #{$PROGRAM_NAME} [infile [outfile]]" exit 1 end outfile.puts JSON.parse(text).to_plist
To use this you will need the json and plist gems. Also, the json gem won't tolerate the trailing commas present in the Gestures.json file in the GLGestureRecognizer project, so I had to tweak that by hand. It does the job, though. Enjoy!
Labels: iphone, JavaScript, Ruby