commit | 197fc852a73e28cc2a555ddb321655d67ff04f10 | [log] [tgz] |
---|---|---|
author | Christopher J. Brody <chris.brody@gmail.com> | Tue Dec 11 17:32:35 2018 -0500 |
committer | Christopher J. Brody <chris.brody@gmail.com> | Tue Dec 11 17:32:35 2018 -0500 |
tree | fdb23d625e3824dfeb814af466f1c998a4c83275 | |
parent | 965663ceeea3123e2e3014383187342d36dea0ff [diff] |
[TODO] TBD RULES DISABLED in lib & test for now TODO: start resolving eslint issues in lib & test so that we can remove the disabled rule entries.
Parser utility for xcodeproj project files
Allows you to edit xcodeproject files and write them back out.
based on donated code from alunny / node-xcode
// 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 https://pegjs.org/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:
npm run pegjs
(and be sure to restore the Apache license notice in lib/parser/pbxproj.js
before committing)
Apache V2