From 7cd2e5f5b5dfd350a51fd746d540c854aaf50dfe Mon Sep 17 00:00:00 2001 From: tbranyen Date: Sat, 7 Jan 2012 20:39:28 -0500 Subject: [PATCH] updated to latest grunt removed build info from zlib --- .gitignore | 3 +- build/config.js | 7 +- build/index.js | 2 +- build/node_modules/grunt/.gitignore | 1 - build/node_modules/grunt/LICENSE-GPL | 278 ------------------ build/node_modules/grunt/README.md | 8 + build/node_modules/grunt/grunt.js | 12 +- build/node_modules/grunt/lib/grunt.js | 52 +++- build/node_modules/grunt/lib/grunt/cli.js | 4 + build/node_modules/grunt/lib/grunt/config.js | 22 +- build/node_modules/grunt/lib/grunt/fail.js | 27 +- build/node_modules/grunt/lib/grunt/file.js | 4 +- build/node_modules/grunt/lib/grunt/help.js | 17 +- build/node_modules/grunt/lib/grunt/log.js | 10 +- build/node_modules/grunt/lib/grunt/task.js | 18 +- .../grunt/lib/grunt/tasks/concat.js | 2 +- .../grunt/lib/grunt/tasks/init.js | 4 +- .../grunt/lib/grunt/tasks/lint.js | 2 +- .../node_modules/grunt/lib/grunt/tasks/min.js | 4 +- .../grunt/lib/grunt/tasks/misc.js | 4 +- .../grunt/lib/grunt/tasks/test.js | 157 ++++++++-- build/node_modules/grunt/lib/util/task.js | 6 + .../node_modules/zlib.sync/.lock-wscript | 9 - .../zlib.sync/build/.conf_check_0/test.cpp | 4 - .../.conf_check_0/testbuild/.wafpickle-7 | Bin 870 -> 0 bytes .../.conf_check_0/testbuild/Release/test_1.o | Bin 2324 -> 0 bytes .../.conf_check_0/testbuild/Release/testprog | Bin 9056 -> 0 bytes .../node_modules/zlib.sync/build/.wafpickle-7 | Bin 937 -> 0 bytes .../zlib.sync/build/Release/src/node-zlib_1.o | Bin 61388 -> 0 bytes .../build/Release/zlib_bindings.node | Bin 27004 -> 0 bytes .../zlib.sync/build/c4che/Release.cache.py | 51 ---- .../zlib.sync/build/c4che/build.config.py | 2 - .../node_modules/zlib.sync/build/config.log | 59 ---- .../zlib.sync/lib/zlib_bindings.node | Bin 27004 -> 27004 bytes .../node_modules/grunt/test/util/task_test.js | 10 + 35 files changed, 296 insertions(+), 483 deletions(-) delete mode 100644 build/node_modules/grunt/.gitignore delete mode 100644 build/node_modules/grunt/LICENSE-GPL delete mode 100644 build/node_modules/grunt/node_modules/zlib.sync/.lock-wscript delete mode 100644 build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/test.cpp delete mode 100644 build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/testbuild/.wafpickle-7 delete mode 100644 build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/testbuild/Release/test_1.o delete mode 100755 build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/testbuild/Release/testprog delete mode 100644 build/node_modules/grunt/node_modules/zlib.sync/build/.wafpickle-7 delete mode 100644 build/node_modules/grunt/node_modules/zlib.sync/build/Release/src/node-zlib_1.o delete mode 100755 build/node_modules/grunt/node_modules/zlib.sync/build/Release/zlib_bindings.node delete mode 100644 build/node_modules/grunt/node_modules/zlib.sync/build/c4che/Release.cache.py delete mode 100644 build/node_modules/grunt/node_modules/zlib.sync/build/c4che/build.config.py delete mode 100644 build/node_modules/grunt/node_modules/zlib.sync/build/config.log diff --git a/.gitignore b/.gitignore index 95e53861..cdb1a79e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ dist/ npm-debug.log node_modules/**/out -node_modules/**/build +.lock-wscript +build/node_modules diff --git a/build/config.js b/build/config.js index fcbfa8b0..0004421c 100644 --- a/build/config.js +++ b/build/config.js @@ -2,7 +2,7 @@ config.init({ lint: { - files: ["build/config.js"] + files: ["build/config.js", "app/modules/*.js"] }, concat: { @@ -22,6 +22,11 @@ config.init({ mincss: { "dist/release/style.css": ["assets/css/style.css"] + }, + + watch: { + files: ["assets/**/*", "app/**/*"], + tasks: "lint:files concat jst" } }); diff --git a/build/index.js b/build/index.js index 45e75ed4..dd5e22c2 100644 --- a/build/index.js +++ b/build/index.js @@ -7,4 +7,4 @@ grunt.tasks([], { tasks: ["build/tasks"] -}); +k); diff --git a/build/node_modules/grunt/.gitignore b/build/node_modules/grunt/.gitignore deleted file mode 100644 index 3bde5c33..00000000 --- a/build/node_modules/grunt/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/example/ diff --git a/build/node_modules/grunt/LICENSE-GPL b/build/node_modules/grunt/LICENSE-GPL deleted file mode 100644 index 76927f58..00000000 --- a/build/node_modules/grunt/LICENSE-GPL +++ /dev/null @@ -1,278 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. \ No newline at end of file diff --git a/build/node_modules/grunt/README.md b/build/node_modules/grunt/README.md index ce9f03a9..c7eb90ce 100644 --- a/build/node_modules/grunt/README.md +++ b/build/node_modules/grunt/README.md @@ -219,3 +219,11 @@ _(more documentation coming soon)_ [configs]: https://github.com/cowboy/grunt/tree/master/template [tasks]: https://github.com/cowboy/grunt/tree/master/lib/grunt/tasks + +## Release History +Nothing official yet... + +## License +Copyright (c) 2012 "Cowboy" Ben Alman +Licensed under the MIT license. + diff --git a/build/node_modules/grunt/grunt.js b/build/node_modules/grunt/grunt.js index 84df0554..369501c5 100644 --- a/build/node_modules/grunt/grunt.js +++ b/build/node_modules/grunt/grunt.js @@ -3,11 +3,11 @@ config.init({ meta: { name: 'grunt', version: '0.1.0', - description: 'A command line build tool for JavaScript projects..', - homepage: 'http://github.com/cowboy/grunt', + description: 'A command line build tool for JavaScript projects.', + homepage: 'https://github.com/cowboy/grunt', author: '"Cowboy" Ben Alman', - license: ['MIT', 'GPL'], - copyright: 'Copyright (c) 2011 "Cowboy" Ben Alman', + license: ['MIT'], + copyright: 'Copyright (c) 2012 "Cowboy" Ben Alman', repository: 'git://github.com/cowboy/grunt.git' }, concat: {}, @@ -32,11 +32,11 @@ config.init({ noarg: true, sub: true, undef: true, + boss: true, eqnull: true, node: true }, globals: { - setTimeout: true, // temp hack for https://github.com/jshint/jshint/issues/292 grequire: true, urequire: true, extraspath: true, @@ -54,4 +54,4 @@ config.init({ }); // Default task. -task.registerTask('default', 'lint:files test:files'); +task.registerTask('default', 'lint test'); diff --git a/build/node_modules/grunt/lib/grunt.js b/build/node_modules/grunt/lib/grunt.js index 7360fb04..435caa01 100644 --- a/build/node_modules/grunt/lib/grunt.js +++ b/build/node_modules/grunt/lib/grunt.js @@ -1,6 +1,3 @@ -// Requiring this here will modify String prototype everywhere. -require('colors'); - var path = require('path'); // Change execution directory to the current working directory. @@ -22,12 +19,51 @@ global.option = grequire('option'); global.log = grequire('log'); global.verbose = log.verbose; +// Disable colors if --no-colors was passed. +function initColors() { + var methods = Object.keys(String.prototype); + // Requiring this here will modify String prototype everywhere. + require('colors'); + + // Disable colors. + if (option('no-color')) { + // Override "colors". + Object.keys(String.prototype).filter(function(method) { + // Filter out methods that existed before "colors" was required. + return methods.indexOf(method) === -1; + }).forEach(function(method) { + // Replace each new method with a function that just returns `this`. + String.prototype.__defineGetter__(method, function() { return this; }); + }); + + // Override console.log (nodeunit, maybe others). + console._log = console.log; + console.log = function() { + var args = Array.prototype.map.call(arguments, function(value) { + if (Object.prototype.toString.call(value) === '[object String]') { + return value.replace(/\033\[[\d;]+m/g, ''); + } + return value; + }); + console._log.apply(console, args); + }; + } +} + // Expose the task interface. I've never called this manually, and have no idea // how it will work. But it might. exports.tasks = function(tasks, options, done) { // Update options with passed-in options. option.init(options); + // Init colors. + initColors(); + + // Load and display help if the user did --help. + if (options.help) { + grequire('help'); + } + // A little header stuff. verbose.header('Initializing').writeflags(option.flags(), 'Command-line options'); @@ -45,7 +81,7 @@ exports.tasks = function(tasks, options, done) { // Report, etc when all tasks have completed. task.options({ error: function(e) { - fail.warn(e.message); + fail.warn(e.message, 3); }, done: function() { // Output a final fail / success report. @@ -62,14 +98,12 @@ exports.tasks = function(tasks, options, done) { }; // This is only executed when run via command line. -exports.cli = function() { +exports.cli = function(options) { // Parse task list and options from the command line. var cli = grequire('cli'); - // Load and display help if the user did --help. - if (cli.options.help) { - grequire('help'); - } + // CLI-parsed options override any passed-in "default" options. + _.defaults(cli.options, options); // Run tasks. exports.tasks(cli.tasks, cli.options); diff --git a/build/node_modules/grunt/lib/grunt/cli.js b/build/node_modules/grunt/lib/grunt/cli.js index 1d76418a..c2dd3617 100644 --- a/build/node_modules/grunt/lib/grunt/cli.js +++ b/build/node_modules/grunt/lib/grunt/cli.js @@ -8,6 +8,10 @@ var options = exports.optlist = { info: 'Display this help text.', type: Boolean }, + color: { + info: 'Colored output (default). For no colors, use --no-color.', + type: Boolean + }, config: { short: 'c', info: 'Specify an alternate "grunt.js" config file.', diff --git a/build/node_modules/grunt/lib/grunt/config.js b/build/node_modules/grunt/lib/grunt/config.js index dfe653e5..4b1fd103 100644 --- a/build/node_modules/grunt/lib/grunt/config.js +++ b/build/node_modules/grunt/lib/grunt/config.js @@ -3,17 +3,37 @@ var namespace = urequire('namespace'); // The actual config data. var data; +// Recursively expand config directives. +function expandConfig(value) { + var parts; + if (value instanceof Array) { + // If value is an array, recurse. + return value.map(expandConfig); + } else if (typeof value === 'string') { + // If value is a directive, expand it if possible. + parts = task.getDirectiveParts(value) || []; + return parts[0] === 'config' ? task.directive(value) : value; + } else { + // Neither array or string. Just return the value. + return value; + } +} + // Get/set config data. If data hasn't been set, return null. If value was // passed, set value. If props string wasn't passed, return all data. Otherwise, // return the prop's value (execute as a directive, when necessary). exports = module.exports = function(props, value) { if (!data) { + // No config data exists. return null; } else if (arguments.length === 2) { + // Two arguments were passed, set the property's value. return namespace.set(data, props, value); } else if (props) { - return task.directive(namespace.get(data, props)); + // A property string was passed, get that property's value. + return expandConfig(namespace.get(data, props)); } else { + // Nothing was passed. Return the actual config data. return data; } }; diff --git a/build/node_modules/grunt/lib/grunt/fail.js b/build/node_modules/grunt/lib/grunt/fail.js index e1b94be0..c038f738 100644 --- a/build/node_modules/grunt/lib/grunt/fail.js +++ b/build/node_modules/grunt/lib/grunt/fail.js @@ -1,11 +1,20 @@ -// Pretty colors. -var tags = { - warn: ['<'.red + 'WARN'.yellow + '>'.red, ''.red], - fatal: ['<'.red + 'FATAL'.yellow + '>'.red, ''.red] -}; +// Error codes +// 1. Generic error. +// 2. Config file not found. +// 3. Generic task failed. +// 10. Uglify-JS error. +// 11. Banner generation error. +// 20. Init error. +// 61-69. Nodeunit errors. // DRY it up! function writeln(e, mode) { + log.muted = false; + // Pretty colors. + var tags = { + warn: ['<'.red + 'WARN'.yellow + '>'.red, ''.red], + fatal: ['<'.red + 'FATAL'.yellow + '>'.red, ''.red] + }; var msg = String(e.message || e) + '\x07'; // Beep! if (mode === 'warn' && !option('silentforce')) { msg += ' ' + (option('force') ? 'Used --force, continuing.'.underline : 'Use --force to continue.'); @@ -14,9 +23,9 @@ function writeln(e, mode) { } // A fatal error occured. Abort immediately. -exports.fatal = function(e) { +exports.fatal = function(e, errcode) { writeln(e, 'fatal'); - process.exit(1); + process.reallyExit(typeof errcode === 'number' ? errcode : 1); }; // Keep track of error and warning counts. @@ -24,13 +33,13 @@ exports.errorcount = 0; exports.warncount = 0; // A warning ocurred. Abort immediately unless -f or --force was used. -exports.warn = function(e) { +exports.warn = function(e, errcode) { exports.warncount++; writeln(e, 'warn'); // If -f or --force aren't used, stop script processing. if (!option('force') && !option('silentforce')) { log.writeln().fail('Aborted due to warnings.'); - process.exit(1); + process.reallyExit(typeof errcode === 'number' ? errcode : 2); } }; diff --git a/build/node_modules/grunt/lib/grunt/file.js b/build/node_modules/grunt/lib/grunt/file.js index b168aa5b..9212377d 100644 --- a/build/node_modules/grunt/lib/grunt/file.js +++ b/build/node_modules/grunt/lib/grunt/file.js @@ -9,8 +9,8 @@ exports.expand = function() { var patterns = arguments[0] instanceof Array ? arguments[0] : [].slice.call(arguments); // Generate a should-be-unique number. var uid = +new Date(); - // Return a uniqued array of matching file paths. - return _(patterns).chain().map(function(pattern) { + // Return a flattened, uniqued array of matching file paths. + return _(patterns).chain().flatten().map(function(pattern) { // Just return the pattern if it's an internal directive. if (task.getDirectiveParts(pattern)) { return pattern; } // Otherwise, expand paths. diff --git a/build/node_modules/grunt/lib/grunt/help.js b/build/node_modules/grunt/lib/grunt/help.js index 9f6014e6..f80de2be 100644 --- a/build/node_modules/grunt/lib/grunt/help.js +++ b/build/node_modules/grunt/lib/grunt/help.js @@ -1,3 +1,4 @@ +var path = require('path'); var optlist = grequire('cli').optlist; task.init(true); @@ -14,6 +15,9 @@ var opts = Object.keys(optlist).map(function(long) { var tasks = Object.keys(task._tasks).map(function(name) { col1len = Math.max(col1len, name.length); var info = task._tasks[name].info; + if (task._tasks[name].basic) { + info += ' *'; + } return [name, info]; }); @@ -45,7 +49,7 @@ log.writeln('grunt: a command line build tool for JavaScript projects.'); // Actually write out help screen. log.header('Usage'); -log.writeln(' grunt [options] [task] ...'); +log.writeln(' ' + path.basename(process.argv[1]) + ' [options] [task [task ...]]'); log.header('Options'); opts.forEach(writeln); @@ -54,9 +58,12 @@ log.header('Tasks'); tasks.forEach(writeln); log.writeln(); -log.writeln('Tasks run in the order specified. Arguments may be passed to tasks that accept them'); -log.writeln('by using semicolons, like "lint:files".'); -log.writeln(); -log.writeln('* Passing no arguments runs this task once for each of its config sub-properties.'); +[ + 'Tasks run in the order specified. Arguments may be passed to tasks that accept', + 'them by using semicolons, like "lint:files". Tasks marked with * are "basic', + 'tasks" and will iterate over config sub-properties if no argument is specified.', + '', + 'For more information, see https://github.com/cowboy/grunt' +].forEach(log.writeln, log); process.exit(); diff --git a/build/node_modules/grunt/lib/grunt/log.js b/build/node_modules/grunt/lib/grunt/log.js index 183d08f8..4a80e0e0 100644 --- a/build/node_modules/grunt/lib/grunt/log.js +++ b/build/node_modules/grunt/lib/grunt/log.js @@ -1,6 +1,9 @@ // Temporarily suppress output. var suppressOutput; +// Allow external muting of output. +exports.muted = false; + // True once anything has actually been logged. var hasLogged; @@ -11,7 +14,7 @@ process.stdout = process.stderr; // Write output. exports.write = function(msg) { // Actually write output. - if (!suppressOutput) { + if (!exports.muted && !suppressOutput) { hasLogged = true; process.stdout.write(msg || ''); } @@ -41,6 +44,11 @@ exports.header = function(msg) { if (hasLogged) { this.writeln(); } return this.writeln(msg.underline); }; +exports.subhead = function(msg) { + // Skip line before subhead, but not if subhead is the very first line output. + if (hasLogged) { this.writeln(); } + return this.writeln(msg.bold); +}; // Display flags in verbose mode. exports.writeflags = function(obj, prefix) { diff --git a/build/node_modules/grunt/lib/grunt/task.js b/build/node_modules/grunt/lib/grunt/task.js index d85d89ee..f31922b3 100644 --- a/build/node_modules/grunt/lib/grunt/task.js +++ b/build/node_modules/grunt/lib/grunt/task.js @@ -14,11 +14,16 @@ exports.registerTask = function(name, info, fn) { registry.tasks.push(name); // Register task. parent.registerTask.apply(this, arguments); + // This task, now that it's been registered. + var task = this._tasks[name]; // Override task function. - var _fn = this._tasks[name].fn; - this._tasks[name].fn = function() { - // A little logging. - log.header('Running "' + this.nameArgs + '"' + + var _fn = task.fn; + task.fn = function() { + // If this task was an alias or a basic task called without arguments, + // only log if in verbose mode. + var logger = _fn.alias || (task.basic && arguments.length === 0) ? verbose : log; + // Actually log. + logger.header('Running "' + this.nameArgs + '"' + (this.name !== this.nameArgs ? ' (' + this.name + ')' : '') + ' task'); // Actually run the task. return _fn.apply(this, arguments); @@ -40,6 +45,7 @@ exports.registerBasicTask = function(name, info, fn) { // Call original task function, passing in only the stuff you really care about. fn.call(this, config(prop), arg); }); + this._tasks[name].basic = true; }; // Override built-in registerHelper to use the registry. @@ -119,6 +125,8 @@ exports.init = function(nofatal) { loadTask(configfile, 'config file'); } else if (option('config')) { // If --config override was specified and it doesn't exist, complain. - fail.fatal('Unable to find "' + configfile + '" config file.'); + fail.fatal('Unable to find "' + configfile + '" config file.', 2); + } else if (!option('help')) { + fail.fatal('Unable to find "grunt.js" config file. Do you need any --help?', 2); } }; diff --git a/build/node_modules/grunt/lib/grunt/tasks/concat.js b/build/node_modules/grunt/lib/grunt/tasks/concat.js index 6cfc778b..97b0f83c 100644 --- a/build/node_modules/grunt/lib/grunt/tasks/concat.js +++ b/build/node_modules/grunt/lib/grunt/tasks/concat.js @@ -2,7 +2,7 @@ // TASKS // ============================================================================ -task.registerBasicTask('concat', 'Concatenate files.*', function(data, name) { +task.registerBasicTask('concat', 'Concatenate files.', function(data, name) { // Concat specified files. var errorcount = fail.errorcount; var files = file.expand(data); diff --git a/build/node_modules/grunt/lib/grunt/tasks/init.js b/build/node_modules/grunt/lib/grunt/tasks/init.js index 6f2d05df..716e6b14 100644 --- a/build/node_modules/grunt/lib/grunt/tasks/init.js +++ b/build/node_modules/grunt/lib/grunt/tasks/init.js @@ -14,12 +14,12 @@ task.registerTask('init', 'Create project scaffolding in the current directory.' // Abort if a valid template wasn't specified. if (!name || templates.indexOf(name) === -1) { - fail.fatal('A valid template (' + templates.join(', ') + ') must be specified.'); + fail.fatal('A valid template (' + templates.join(', ') + ') must be specified.', 20); } // Abort if the current directory isn't empty! if (fs.readdirSync(process.cwd()).length > 0) { - fail.warn('The current directory is not empty.'); + fail.warn('The current directory is not empty.', 20); } // TODO: read data. diff --git a/build/node_modules/grunt/lib/grunt/tasks/lint.js b/build/node_modules/grunt/lib/grunt/tasks/lint.js index 2b813846..96454423 100644 --- a/build/node_modules/grunt/lib/grunt/tasks/lint.js +++ b/build/node_modules/grunt/lib/grunt/tasks/lint.js @@ -4,7 +4,7 @@ var jshint = require('jshint').JSHINT; // TASKS // ============================================================================ -task.registerBasicTask('lint', 'Validate files with JSHint.*', function(data, name) { +task.registerBasicTask('lint', 'Validate files with JSHint.', function(data, name) { // Get flags and globals. var options = config('jshint.options'); var globals = config('jshint.globals'); diff --git a/build/node_modules/grunt/lib/grunt/tasks/min.js b/build/node_modules/grunt/lib/grunt/tasks/min.js index 3268910b..b3185fa0 100644 --- a/build/node_modules/grunt/lib/grunt/tasks/min.js +++ b/build/node_modules/grunt/lib/grunt/tasks/min.js @@ -5,7 +5,7 @@ var zlib = require('zlib.sync'); // TASKS // ============================================================================ -task.registerBasicTask('min', 'Minify files with UglifyJS.*', function(data, name) { +task.registerBasicTask('min', 'Minify files with UglifyJS.', function(data, name) { var errorcount = fail.errorcount; var files = file.expand(data); // Get banner, if specified. It would be nice if UglifyJS supported ignoring @@ -62,7 +62,7 @@ task.registerHelper('uglify', function(src, options) { verbose.or.write(msg); pos = '['.red + ('L' + e.line).yellow + ':'.red + ('C' + e.col).yellow + ']'.red; log.error().writeln(pos + ' ' + (e.message + ' (position: ' + e.pos + ')').yellow); - fail.warn('UglifyJS found errors.'); + fail.warn('UglifyJS found errors.', 10); } }); diff --git a/build/node_modules/grunt/lib/grunt/tasks/misc.js b/build/node_modules/grunt/lib/grunt/tasks/misc.js index 5c42562c..be34774e 100644 --- a/build/node_modules/grunt/lib/grunt/tasks/misc.js +++ b/build/node_modules/grunt/lib/grunt/tasks/misc.js @@ -30,10 +30,10 @@ task.registerHelper('banner', function(prop) { banner = ''; verbose.error(); log.error(e.message); - fail.warn('Handlebars found errors.'); + fail.warn('Handlebars found errors.', 11); } } else { - fail.warn('No "' + prop + '" banner template defined.'); + fail.warn('No "' + prop + '" banner template defined.', 11); banner = ''; } return banner; diff --git a/build/node_modules/grunt/lib/grunt/tasks/test.js b/build/node_modules/grunt/lib/grunt/tasks/test.js index d959846d..33fd761e 100644 --- a/build/node_modules/grunt/lib/grunt/tasks/test.js +++ b/build/node_modules/grunt/lib/grunt/tasks/test.js @@ -1,45 +1,142 @@ var path = require('path'); var nodeunit = require('nodeunit'); - -// Ugh. Monkey patching nodeunit so that arbitrary code (like the next task) -// can be run when it's done testing. Good times. -// https://github.com/caolan/nodeunit/pull/85 -// https://github.com/caolan/nodeunit/pull/118 -nodeunit._done = function() {/*nothing*/}; -nodeunit._runFiles = nodeunit.runFiles; -nodeunit.runFiles = function(files, options) { - options._done = options.done; - options.done = function() { - var result = this._done.apply(this, arguments); - nodeunit._done.apply(this, arguments); - return result; - }; - return this._runFiles(files, options); -}; +var nodeunitUtils = require('nodeunit/lib/utils'); // ============================================================================ -// TASKS +// CUSTOM NODEUNIT REPORTER // ============================================================================ -task.registerBasicTask('test', 'Run unit tests.*', function(data, name) { - // The actual nodeunit reporter. Use "default" if --verbose, and "minimal" - // if not. - var reporter = nodeunit.reporters[option('verbose') ? 'default' : 'minimal']; +// Keep track of the last-started module. +var currentModule; +// Keep track of the last-started test(s). +var unfinished = {}; + +// If Nodeunit explodes because a test was missing test.done(), handle it. +process.on('exit', function() { + var len = Object.keys(unfinished).length; + // If there are unfinished tests, tell the user why Nodeunit killed grunt. + if (len > 0) { + log.muted = false; + verbose.error().or.writeln('F'.red); + log.error('Incomplete tests/setups/teardowns:'); + Object.keys(unfinished).forEach(log.error, log); + fail.fatal('A test was missing test.done(), so nodeunit exploded. Sorry!', + Math.min(99, 90 + len)); + } +}); + +// Keep track of failed assertions for pretty-printing. +var failedAssertions = []; +function logFailedAssertions() { + var assertion; + // Print each assertion error + stack. + while (assertion = failedAssertions.shift()) { + nodeunitUtils.betterErrors(assertion); + verbose.or.error(assertion.testName); + if (assertion.error.name === 'AssertionError' && assertion.message) { + log.error('AssertionMessage: ' + assertion.message.magenta); + } + log.error(assertion.error.stack.replace(/:(.*?\n)/, '$1'.magenta) + '\n'); + } +} - // Nodeunit tests run asynchronously! - var done = this.async(); +// Define our own Nodeunit reporter. +nodeunit.reporters.grunt = { + info: 'Grunt reporter', + run: function(files, options, callback) { + var opts = { + // No idea. + testspec: undefined, + // Executed when the first test in a file is run. If no tests exist in + // the file, this doesn't execute. + moduleStart: function(name) { + // Keep track of this so that moduleDone output can be suppressed in + // cases where a test file contains no tests. + currentModule = name; + verbose.subhead('Testing ' + name).or.write('Testing ' + name); + }, + // Executed after a file is done being processed. This executes whether + // tests exist in the file or not. + moduleDone: function(name) { + // Abort if no tests actually ran. + if (name !== currentModule) { return; } + // Print assertion errors here, if verbose mode is disabled. + if (!option('verbose')) { + if (failedAssertions.length > 0) { + log.writeln(); + logFailedAssertions(); + } else { + log.ok(); + } + } + }, + // Executed before each test is run. + testStart: function(name) { + // Keep track of the current test, in case test.done() was omitted + // and Nodeunit explodes. + unfinished[name] = name; + verbose.write(name + '...'); + // Mute output, in cases where a function being tested logs through + // grunt (for testing grunt internals). + log.muted = true; + }, + // Executed after each test and all its assertions are run. + testDone: function(name, assertions) { + delete unfinished[name]; + // Un-mute output. + log.muted = false; + // Log errors if necessary, otherwise success. + if (assertions.failures()) { + assertions.forEach(function(ass) { + if (ass.failed()) { + ass.testName = name; + failedAssertions.push(ass); + } + }); + if (option('verbose')) { + log.error(); + logFailedAssertions(); + } else { + log.write('F'.red); + } + } else { + verbose.ok().or.write('.'); + } + }, + // Executed when everything is all done. + done: function (assertions) { + if (assertions.failures()) { + fail.warn(assertions.failures() + '/' + assertions.length + + ' assertions failed (' + assertions.duration + 'ms)', + Math.min(99, 90 + assertions.failures())); + } else { + verbose.writeln(); + log.ok(assertions.length + ' assertions passed (' + + assertions.duration + 'ms)'); + } + // Tell the task manager we're all done. + callback(); // callback(assertions.failures() === 0); + } + }; - // When testing is done, continue processing other tasks. See the delightful - // monkey patch at the top of this file. - nodeunit._done = function(arr) { - done(arr.failures() === 0); - }; + // Nodeunit needs absolute paths. + var paths = files.map(function (filepath) { + return path.join(process.cwd(), filepath); + }); + nodeunit.runFiles(paths, opts); + } +}; + +// ============================================================================ +// TASKS +// ============================================================================ +task.registerBasicTask('test', 'Run unit tests.', function(data, name) { // File paths. var filepaths = file.expand(data); // Clear all tests' cached require data, in case this task is run inside a // "watch" task loop. file.clearRequireCache(filepaths); - // Run test(s). - reporter.run(filepaths); + // Run test(s)... asynchronously! + nodeunit.reporters.grunt.run(filepaths, {}, this.async()); }); diff --git a/build/node_modules/grunt/lib/util/task.js b/build/node_modules/grunt/lib/util/task.js index 318077c8..28cb2eb6 100644 --- a/build/node_modules/grunt/lib/util/task.js +++ b/build/node_modules/grunt/lib/util/task.js @@ -122,6 +122,7 @@ tasks = this.parseArgs([fn]); // This task function just runs the specified tasks. fn = this.run.bind(this, fn); + fn.alias = true; // Generate an info string if one wasn't explicitly passed. if (!info) { info = 'Alias for "' + tasks.join(' ') + '" task' + @@ -134,6 +135,11 @@ return this; }; + // Is the specified task an alias? + Task.prototype.isTaskAlias = function(name) { + return !!this._tasks[name].fn.alias; + }; + // Rename a task. This might be useful if you want to override the default // behavior of a task, while retaining the old name. This is a billion times // easier to implement than some kind of in-task "super" functionality. diff --git a/build/node_modules/grunt/node_modules/zlib.sync/.lock-wscript b/build/node_modules/grunt/node_modules/zlib.sync/.lock-wscript deleted file mode 100644 index 6e5944a7..00000000 --- a/build/node_modules/grunt/node_modules/zlib.sync/.lock-wscript +++ /dev/null @@ -1,9 +0,0 @@ -argv = ['/usr/local/bin/node-waf', 'configure', 'build'] -blddir = '/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync/build' -commands = {'dist': 0, 'configure': True, 'distcheck': 0, 'install': 0, 'build': True, 'clean': 0, 'distclean': 0, 'check': 0, 'uninstall': 0} -cwd = '/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync' -environ = {'npm_config_color': 'true', 'rvm_niceness': '', 'rvm_version': '1.8.4', 'rvm_action': '', 'rvm_remove_flag': '', 'npm_config_searchopts': '', 'rvm_ruby_release_version': '', 'npm_config_group': '20', 'npm_package_homepage': 'https://github.com/kkaefer/node-zlib', 'npm_config_browser': 'open', 'rvm_make_flags': '', 'rvm_tmp_path': '/Users/timbranyen/.rvm/tmp', 'npm_config_global': '', 'rvm_ruby_repo_url': '', 'rvm_bin_flag': '', 'SHELL': '/bin/zsh', 'npm_package_parent_name': 'grunt', 'rvm_ruby_major_version': '', 'npm_config_pre': '', 'rvm_ruby_patch': '', 'rvm_head_flag': '', 'rvm_repos_path': '/Users/timbranyen/.rvm/repos', 'rvm_ruby_alias': '', 'npm_config_logfd': '2', 'rvm_ruby_version': '', 'rvm_gemsets_path': '/Users/timbranyen/.rvm/gemsets', 'rvm_gems_cache_path': '/Users/timbranyen/.rvm/gems/cache', 'npm_config_argv': '{"remain":[],"cooked":["rebuild"],"original":["rebuild"]}', 'npm_config_version': '', 'npm_package_scripts_preinstall': 'node-waf clean || (exit 0); node-waf configure build', 'rvm_lib_path': '/Users/timbranyen/.rvm/lib', 'rvm_ruby_user_tag': '', 'rvm_user_path': '/Users/timbranyen/.rvm/user', 'npm_config_init_version': '0.0.0', 'npm_lifecycle_event': 'preinstall', 'rvm_docs_path': '/Users/timbranyen/.rvm/docs', 'rvm_ruby_mode': '', 'rvm_ree_options': '', 'rvm_ruby_bits': '', 'npm_config_init_author_name': '', 'rvm_rubies_path': '/Users/timbranyen/.rvm/rubies', 'npm_package_path': '/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync', 'npm_config_yes': '', 'rvm_gems_path': '/Users/timbranyen/.rvm/gems', 'npm_config_usage': '', 'npm_package_description': 'Simple, synchronous deflate/inflate for buffers', 'npm_config_logprefix': 'true', 'rvm_install_args': '', 'npm_config_ignore': '', 'rvm_archive_extension': '', 'npm_config_ca': '"-----BEGIN CERTIFICATE-----\\nMIIChzCCAfACCQDauvz/KHp8ejANBgkqhkiG9w0BAQUFADCBhzELMAkGA1UEBhMC\\nVVMxCzAJBgNVBAgTAkNBMRAwDgYDVQQHEwdPYWtsYW5kMQwwCgYDVQQKEwNucG0x\\nIjAgBgNVBAsTGW5wbSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxDjAMBgNVBAMTBW5w\\nbUNBMRcwFQYJKoZIhvcNAQkBFghpQGl6cy5tZTAeFw0xMTA5MDUwMTQ3MTdaFw0y\\nMTA5MDIwMTQ3MTdaMIGHMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEDAOBgNV\\nBAcTB09ha2xhbmQxDDAKBgNVBAoTA25wbTEiMCAGA1UECxMZbnBtIENlcnRpZmlj\\nYXRlIEF1dGhvcml0eTEOMAwGA1UEAxMFbnBtQ0ExFzAVBgkqhkiG9w0BCQEWCGlA\\naXpzLm1lMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLI4tIqPpRW+ACw9GE\\nOgBlJZwK5f8nnKCLK629Pv5yJpQKs3DENExAyOgDcyaF0HD0zk8zTp+ZsLaNdKOz\\nGn2U181KGprGKAXP6DU6ByOJDWmTlY6+Ad1laYT0m64fERSpHw/hjD3D+iX4aMOl\\ny0HdbT5m1ZGh6SJz3ZqxavhHLQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAC4ySDbC\\nl7W1WpLmtLGEQ/yuMLUf6Jy/vr+CRp4h+UzL+IQpCv8FfxsYE7dhf/bmWTEupBkv\\nyNL18lipt2jSvR3v6oAHAReotvdjqhxddpe5Holns6EQd1/xEZ7sB1YhQKJtvUrl\\nZNufy1Jf1r0ldEGeA+0ISck7s+xSh9rQD2Op\\n-----END CERTIFICATE-----"', 'npm_config_globalconfig': '/usr/local/etc/npmrc', 'npm_package_depth': '2', 'rvm_patches_path': '/Users/timbranyen/.rvm/patches', 'rvm_gemstone_package_file': '', 'npm_config_parseable': '', 'rvm_path': '/Users/timbranyen/.rvm', 'rvm_ruby_global_gems_path': '', 'npm_config_userignorefile': '/Users/timbranyen/.npmignore', 'USER': 'timbranyen', 'rvm_examples_path': '/Users/timbranyen/.rvm/examples', 'npm_package_author_name': 'Konstantin K\xc3\xa4fer', 'rvm_gemset_separator': '', 'rvm_expanding_aliases': '', 'npm_package_realPath': '/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync', 'SITE_CONTENT_KEY': 'd41d8cd98f00b204e9800998ecf8427e', 'rvm_ruby_name': '', 'rvm_nightly_flag': '', 'rvm_prior_cc': '', 'rvm_patch_names': '', 'npm_config_init_author_url': '', 'DISPLAY': '/tmp/launch-c4Bgjo/org.x:0', 'rvm_sdk': '', 'npm_config_cache': '/Users/timbranyen/.npm', 'rvm_llvm_flag': '', 'rvm_ruby_gem_home': '', 'rvm_dump_environment_flag': '', 'npm_config_email': 'tim@tabdeveloper.com', 'rvm_verbose_flag': '0', 'rvm_only_path_flag': '', 'rvm_gemset_name': '', 'rvm_script_name': '', 'npm_config_proxy': '', 'rvm_debug_flag': '0', 'npm_config_umask': '022', 'npm_config_depth': 'null', 'npm_config_shell': '/bin/zsh', 'rvm_ruby_make_install': '', 'rvm_ruby_aliases': '', 'npm_config_long': '', 'npm_config_editor': 'vim', 'rvm_clang_flag': '', 'npm_config_always_auth': '', 'npm_config_prefix': '/usr/local', 'npm_package_repository_type': 'git', 'npm_config_npat': '', 'rvm_alias_expanded': '', 'rvm_archives_path': '/Users/timbranyen/.rvm/archives', 'rvm_trace_flag': '', 'npm_config_searchsort': 'name', 'npm_package_author_email': 'kkaefer@gmail.com', 'npm_lifecycle_script': 'node-waf clean || (exit 0); node-waf configure build', 'rvm_ruby_strings': '', 'rvm_help_path': '/Users/timbranyen/.rvm/help', 'rvm_environments_path': '/Users/timbranyen/.rvm/environments', 'COMMAND_MODE': 'unix2003', 'npm_config_save': '', 'rvm_proxy': '', 'rvm_man_path': '/Users/timbranyen/.rvm/man', 'TERM_PROGRAM_VERSION': '299', 'rvm_ruby_gem_path': '', 'npm_config_rollback': 'true', 'rvm_ruby_load_path': '', 'npm_package_repository_url': 'git://github.com/kkaefer/node-zlib.git', 'rvm_gemstone_url': '', 'rvm_ruby_selected_flag': '', 'HOME': '/Users/timbranyen', 'rvm_ruby_binary': '', 'rvm_ruby_repo_branch': '', 'TERM_PROGRAM': 'Apple_Terminal', 'LANG': 'en_US.UTF-8', 'rvm_patch_original_pwd': '', 'Apple_PubSub_Socket_Render': '/tmp/launch-0G3OIZ/Render', 'rvm_ruby_tag': '', 'rvm_quiet_flag': '', 'npm_config_registry': 'https://registry.npmjs.org/', 'npm_config_unicode': 'true', 'npm_config_production': '', 'rvm_parse_break': '', 'rvm_install_on_use_flag': '', 'rvm_ruby_revision': '', '_': '/usr/local/bin/node-waf', 'rvm_usr_path': '/Users/timbranyen/.rvm/usr', 'npm_config_searchexclude': '', 'npm_config_loglevel': 'http', 'rvm_ruby_package_name': '', 'VERSIONER_PYTHON_PREFER_32_BIT': 'no', 'rvm_prefix': '/Users/timbranyen', 'rvm_docs_type': '', 'npm_config_strict_ssl': 'true', 'rvm_user_install_flag': '1', 'rvm_ruby_interpreter': '', 'rvm_sticky_flag': '', 'TERM_SESSION_ID': '1E367085-8900-4221-9D2E-07339D5319D9', 'npm_package_main': './lib/zlib', 'npm_config_tag': 'latest', 'npm_package_licenses_0_type': 'BSD', 'rvm_wrapper_name': '', 'rvm_default_flag': '', 'rvm_system_flag': '', 'npm_config_globalignorefile': '/usr/local/etc/npmignore', 'rvm_src_path': '/Users/timbranyen/.rvm/src', 'rvm_configure_flags': '', 'rvm_file_name': '', 'npm_config_force': '', 'LOGNAME': 'timbranyen', 'npm_config_user': '', 'rvm_gemdir_flag': '', 'npm_config_tmp': '/var/folders/x6/bsdzdy515rz6lpfd4xd43q9h0000gn/T', 'rvm_scripts_path': '/Users/timbranyen/.rvm/scripts', 'rvm_ruby_configure': '', 'npm_package_name': 'zlib.sync', 'npm_config_userconfig': '/Users/timbranyen/.npmrc', 'npm_package_engines_node': '>=0.2.0', 'rvm_ruby_sha': '', 'npm_config_dev': '', 'rvm_error_message': '', 'npm_config_rebuild_bundle': 'true', 'npm_config_npaturl': 'http://npat.npmjs.org/', 'npm_config_username': 'tbranyen', 'PATH': '/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync/node_modules/.bin:/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/.bin:/Users/timbranyen/git/backbone-boilerplate/build/node_modules/.bin:/usr/local/bin:/Users/timbranyen/.scripts:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/timbranyen/.rvm/bin', 'rvm_archflags': '', 'npm_config_coverage': '', 'rvm_ruby_home': '', '__CF_USER_TEXT_ENCODING': '0x1F5:0:0', 'npm_config_proprietary_attribs': 'true', 'rvm_ruby_require': '', 'npm_config_node_version': '0.6.6', 'npm_config_onload_script': '', 'VERSIONER_PYTHON_VERSION': '2.7', 'npm_config_link': '', 'npm_config_description': 'true', 'npm_config_message': '%s', 'npm_config_bindist': '0.6-ares1.7.5-DEV-evundefined-openssl0.9.8r-v83.6.6.14-darwin-x64-11.2.0', 'rvm_ruby_minor_version': '', 'rvm_delete_flag': '', 'rvm_ruby_irbrc': '', 'rvm_log_path': '/Users/timbranyen/.rvm/log', 'rvm_reload_flag': '0', 'rvm_ruby_string': '', 'rvm_ruby_url': '', 'rvm_loaded_flag': '1', 'npm_config_viewer': 'man', 'npm_package_link': 'undefined', 'rvm_ruby_file': '', 'rvm_bin_path': '/Users/timbranyen/.rvm/bin', 'npm_config_showlevel': '2', 'npm_config_unsafe_perm': 'true', 'SSH_AUTH_SOCK': '/tmp/launch-hovvC5/Listeners', 'rvm_ruby_patch_level': '', 'TERM': 'xterm-256color', 'rvm_user_flag': '', 'EDITOR': 'vim', 'rvm_ruby_package_file': '', 'rvm_ruby_make': '', 'npm_package_version': '1.0.5', 'npm_config_https_proxy': '', 'npm_config_init_author_email': '', 'rvm_ruby_args': '', 'npm_package_parent_version': '0.1.0', 'npm_package_realName': 'zlib.sync', 'TMPDIR': '/var/folders/x6/bsdzdy515rz6lpfd4xd43q9h0000gn/T/', 'rvm_token': '', 'rvm_wrappers_path': '/Users/timbranyen/.rvm/wrappers', 'npm_config_bin_publish': '', 'rvm_use_flag': '', 'NODE_PATH': '/usr/local/lib/node_modules/', 'SHLVL': '2', 'PWD': '/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync', 'rvm_silent_flag': '', '__array_start': '1', 'rvm_pretty_print_flag': '', 'npm_package_parent_path': '/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt', 'npm_config_outfd': '1'} -files = [] -hash = 0 -options = {'compile_targets': None, 'force': False, 'verbose': 0, 'nocache': False, 'progress_bar': 0, 'destdir': '', 'keep': False, 'zones': '', 'blddir': '', 'prefix': '/usr/local/', 'jobs': 4, 'srcdir': '', 'check_cxx_compiler': 'g++'} -srcdir = '/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync' diff --git a/build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/test.cpp b/build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/test.cpp deleted file mode 100644 index 15d30087..00000000 --- a/build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/test.cpp +++ /dev/null @@ -1,4 +0,0 @@ - -int main() { - return 0; -} diff --git a/build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/testbuild/.wafpickle-7 b/build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/testbuild/.wafpickle-7 deleted file mode 100644 index 83ec19711564b0469aba51d7b015addec7ed0504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 870 zcmZXSOGs2v7{`6gI1e4Y=3`PD-=lX@$9IoO(;9og2^Ya3qQ@}z&S}og>)iS7!!S5y zXt)WYf)>%jML~<8jc(hB(1QY_MMMxrLP4}B7cEMbAR0b?|kQ+@8irAFvu6N z$I#`BmLgCfkK6FuAIlGgk!#=*DTmuZkpqtduLGY0zk^~2B@O}(N*$Dm<2Vnw83@>o z4Wb)RPD>3_qUFfPU%HE9wE(qg_Qh^iRu#BRw_)D+ZEKM!kA4TD--!aGe&+AXTYfI8~qt`3D5 z?85G}Ze>geQ7;cesEI-Se+3QH!(9UkGib!V%c>$pjp>XGO|*!MCKO@N{O{-%>gHh! z>SEA}15sJaTu8{2$P}AW|f2Ko5gnEG#W- zRL(ulZ~oz}zI(KGO@+R526pM1W2F*vDYM{m4!dl_U)UF$M=j6vx71-u=ea)l*kq-P>5{zPWZBhR_HW{w&vD zeERw4hb3X=*!3IhZ(-O%c?=Gs7#8jXk9>>IfBjhSY58<9`6U~cJ%OY#k;t7h!eCUy z!obQI^-){wi)W_)&AVISO*kadAuOEzUAw*+dUm4X`R(q-C$DF*ps3cAY?(xxBD$(2 rQ*e0uolJ<+K9LS%;r+vxSI-B(&rLl@(b*Sct=n(9JuzX-vZ8+h`aU|% diff --git a/build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/testbuild/Release/test_1.o b/build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/testbuild/Release/test_1.o deleted file mode 100644 index 695a63dd75c1f539c79df50aeac7e9efc70aeaf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2324 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 U{Jit?@L>1olt&pGCLAaI2d(^b diff --git a/build/node_modules/grunt/node_modules/zlib.sync/build/Release/src/node-zlib_1.o b/build/node_modules/grunt/node_modules/zlib.sync/build/Release/src/node-zlib_1.o deleted file mode 100644 index efac137c0883445d241c06f74efb48b2ac3e0cf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61388 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 diff --git a/build/node_modules/grunt/node_modules/zlib.sync/build/Release/zlib_bindings.node b/build/node_modules/grunt/node_modules/zlib.sync/build/Release/zlib_bindings.node deleted file mode 100755 index fea98acd282251265ffcaa5d9a6d301b6ea05c68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27004 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 Q4T%pV#E%f9oS_u|2Ry$erT_o{ diff --git a/build/node_modules/grunt/node_modules/zlib.sync/build/c4che/Release.cache.py b/build/node_modules/grunt/node_modules/zlib.sync/build/c4che/Release.cache.py deleted file mode 100644 index f681bec3..00000000 --- a/build/node_modules/grunt/node_modules/zlib.sync/build/c4che/Release.cache.py +++ /dev/null @@ -1,51 +0,0 @@ -AR = '/usr/bin/ar' -ARFLAGS = 'rcs' -CCFLAGS = ['-g'] -CCFLAGS_MACBUNDLE = ['-fPIC'] -CCFLAGS_NODE = ['-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64'] -CC_VERSION = ('4', '2', '1') -COMPILER_CXX = 'g++' -CPP = '/usr/bin/cpp' -CPPFLAGS_NODE = ['-D_GNU_SOURCE'] -CPPPATH_NODE = '/usr/local/include/node' -CPPPATH_ST = '-I%s' -CXX = ['/usr/bin/g++'] -CXXDEFINES_ST = '-D%s' -CXXFLAGS = ['-g'] -CXXFLAGS_DEBUG = ['-g'] -CXXFLAGS_NODE = ['-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64'] -CXXFLAGS_RELEASE = ['-O2'] -CXXLNK_SRC_F = '' -CXXLNK_TGT_F = ['-o', ''] -CXX_NAME = 'gcc' -CXX_SRC_F = '' -CXX_TGT_F = ['-c', '-o', ''] -DEST_CPU = 'x86_64' -DEST_OS = 'darwin' -FULLSTATIC_MARKER = '-static' -LIBDIR = '/usr/local/lib/node_modules/' -LIBPATH_NODE = '/usr/local/lib' -LIBPATH_ST = '-L%s' -LIBPATH_ZLIB = ['/usr/local/lib'] -LIB_ST = '-l%s' -LIB_ZLIB = ['z'] -LINKFLAGS = [] -LINKFLAGS_MACBUNDLE = ['-bundle', '-undefined', 'dynamic_lookup'] -LINK_CXX = ['/usr/bin/g++'] -NODE_PATH = '/usr/local/lib/node_modules/' -PREFIX = '/usr/local' -PREFIX_NODE = '/usr/local' -RANLIB = '/usr/bin/ranlib' -RPATH_ST = '-Wl,-rpath,%s' -SHLIB_MARKER = '' -SONAME_ST = '' -STATICLIBPATH_ST = '-L%s' -STATICLIB_MARKER = '' -STATICLIB_ST = '-l%s' -macbundle_PATTERN = '%s.bundle' -program_PATTERN = '%s' -shlib_CXXFLAGS = ['-fPIC', '-compatibility_version', '1', '-current_version', '1'] -shlib_LINKFLAGS = ['-dynamiclib'] -shlib_PATTERN = 'lib%s.dylib' -staticlib_LINKFLAGS = [] -staticlib_PATTERN = 'lib%s.a' diff --git a/build/node_modules/grunt/node_modules/zlib.sync/build/c4che/build.config.py b/build/node_modules/grunt/node_modules/zlib.sync/build/c4che/build.config.py deleted file mode 100644 index 55cf008f..00000000 --- a/build/node_modules/grunt/node_modules/zlib.sync/build/c4che/build.config.py +++ /dev/null @@ -1,2 +0,0 @@ -version = 0x105016 -tools = [{'tool': 'ar', 'tooldir': None, 'funs': None}, {'tool': 'cxx', 'tooldir': None, 'funs': None}, {'tool': 'gxx', 'tooldir': None, 'funs': None}, {'tool': 'compiler_cxx', 'tooldir': None, 'funs': None}, {'tool': 'osx', 'tooldir': None, 'funs': None}, {'tool': 'node_addon', 'tooldir': None, 'funs': None}] diff --git a/build/node_modules/grunt/node_modules/zlib.sync/build/config.log b/build/node_modules/grunt/node_modules/zlib.sync/build/config.log deleted file mode 100644 index 3b9edd5a..00000000 --- a/build/node_modules/grunt/node_modules/zlib.sync/build/config.log +++ /dev/null @@ -1,59 +0,0 @@ -# project noname (1.0) configured on Thu Jan 5 14:59:02 2012 by -# waf 1.5.16 (abi 7, python 20701f0 on darwin) -# using /usr/local/bin/node-waf configure build -# - ----------------------------------------- -Setting srcdir to -/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync - ----------------------------------------- -Setting blddir to -/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync/build - ----------------------------------------- -Checking for program g++ or c++ - find program=['g++', 'c++'] paths=[] var='CXX' - -> '/usr/bin/g++' - ----------------------------------------- -Checking for program cpp - find program=['cpp'] paths=[] var='CPP' - -> '/usr/bin/cpp' - ----------------------------------------- -Checking for program ar - find program=['ar'] paths=[] var='AR' - -> '/usr/bin/ar' - ----------------------------------------- -Checking for program ranlib - find program=['ranlib'] paths=[] var='RANLIB' - -> '/usr/bin/ranlib' - ----------------------------------------- -Checking for g++ -ok - ----------------------------------------- -Checking for node path -ok /usr/local/lib/node_modules/ - ----------------------------------------- -Checking for node prefix -ok /usr/local - ----------------------------------------- -Checking for library z -==> - -int main() { - return 0; -} - -<== -[1/2] cxx: build/.conf_check_0/test.cpp -> build/.conf_check_0/testbuild/Release/test_1.o -['/usr/bin/g++', '-g', '../test.cpp', '-c', '-o', 'Release/test_1.o'] -[2/2] cxx_link: build/.conf_check_0/testbuild/Release/test_1.o -> build/.conf_check_0/testbuild/Release/testprog -['/usr/bin/g++', 'Release/test_1.o', '-o', '/Users/timbranyen/git/backbone-boilerplate/build/node_modules/grunt/node_modules/zlib.sync/build/.conf_check_0/testbuild/Release/testprog', '-L/usr/local/lib', '-lz'] -yes diff --git a/build/node_modules/grunt/node_modules/zlib.sync/lib/zlib_bindings.node b/build/node_modules/grunt/node_modules/zlib.sync/lib/zlib_bindings.node index fea98acd282251265ffcaa5d9a6d301b6ea05c68..505407e3c3231208e837b6be6472162b6b9c8323 100755 GIT binary patch delta 18 acmex!iSf@R#ti|!%$q)PY!3F-lmP%+T?jG& delta 18 Zcmex!iSf@R#ti|!%