commit | 23d24df78d1064054414eca812fb36e297601064 | [log] [tgz] |
---|---|---|
author | Dimitar Kerezov <dimitar.kerezov@telerik.com> | Mon Jun 29 12:20:57 2015 +0300 |
committer | Dimitar Kerezov <dimitar.kerezov@telerik.com> | Tue Jul 07 10:44:30 2015 +0300 |
tree | 9c34d3ea3ca0145a50e189fead0c199e37cf917c | |
parent | 3085e40ad6cf8f90026d6064a324b6348512e8f5 [diff] |
Allow setting of 'includeInIndex' and 'explicitFileType' properties This enables greater customization when adding file to FileReference Section, like for example adding build output files (e.g. .app files or .appex files)
parser/toolkit for xcodeproj project files
Allows you to edit xcodeproject files and write them back out.
// API is a bit wonky right now var xcode = require('xcode'), fs = require('fs'), projectPath = 'myproject.xcodeproj/project.pbxproj', myProj = xcode.project(projectPath); // parsing is async, in a different process myProj.parse(function (err) { myProj.addHeaderFile('foo.h'); myProj.addSourceFile('foo.m'); myProj.addFramework('FooKit.framework'); fs.writeFileSync(projectPath, myProj.writeSync()); console.log('new project written'); });
If there's a problem parsing, you will want to edit the grammar under lib/parser/pbxproj.pegjs
. You can test it online with the PEGjs online thingy at http://pegjs.majda.cz/online - I have had some mixed results though.
Tests under the test/parser
directory will compile the parser from the grammar. Other tests will use the prebuilt parser (lib/parser/pbxproj.js
).
To rebuild the parser js file after editing the grammar, run:
./node_modules/.bin/pegjs lib/parser/pbxproj.pegjs
(easier if ./node_modules/.bin
is in your path)
MIT