From dc7c17f8ace498c9dce11da36d161bd2e25ba9c4 Mon Sep 17 00:00:00 2001 From: Juan Gallardo Date: Tue, 1 Jul 2014 17:22:09 -0700 Subject: [PATCH 1/2] Adding Gulp Description: The streaming build system Source: https://github.com/gulpjs/gulp Author: Fractal License: MIT --- ajax/libs/gulp/3.8.5/gulp.js | 203 +++++++++++++++++++++++++++++++++++ ajax/libs/gulp/package.json | 27 +++++ 2 files changed, 230 insertions(+) create mode 100644 ajax/libs/gulp/3.8.5/gulp.js create mode 100644 ajax/libs/gulp/package.json diff --git a/ajax/libs/gulp/3.8.5/gulp.js b/ajax/libs/gulp/3.8.5/gulp.js new file mode 100644 index 000000000..815d6d369 --- /dev/null +++ b/ajax/libs/gulp/3.8.5/gulp.js @@ -0,0 +1,203 @@ +#!/usr/bin/env node + +'use strict'; +var gutil = require('gulp-util'); +var prettyTime = require('pretty-hrtime'); +var chalk = require('chalk'); +var semver = require('semver'); +var archy = require('archy'); +var Liftoff = require('liftoff'); +var tildify = require('tildify'); +var interpret = require('interpret'); +var completion = require('../lib/completion'); +var argv = require('minimist')(process.argv.slice(2)); +var taskTree = require('../lib/taskTree'); + +// set env var for ORIGINAL cwd +// before anything touches it +process.env.INIT_CWD = process.cwd(); + +var cli = new Liftoff({ + name: 'gulp', + completions: completion, + extensions: interpret.jsVariants +}); + +// exit with 0 or 1 +var failed = false; +process.once('exit', function(code) { + if (code === 0 && failed) { + process.exit(1); + } +}); + +// parse those args m8 +var cliPackage = require('../package'); +var versionFlag = argv.v || argv.version; +var tasksFlag = argv.T || argv.tasks; +var tasks = argv._; +var toRun = tasks.length ? tasks : ['default']; + +// this is a hold-over until we have a better logging system +// with log levels +var simpleTasksFlag = argv['tasks-simple']; +var shouldLog = !argv.silent && !simpleTasksFlag; + +if (!shouldLog) { + gutil.log = function(){}; +} + +// wire up a few err listeners to liftoff +cli.on('require', function (name) { + gutil.log('Requiring external module', chalk.magenta(name)); +}); + +cli.on('requireFail', function (name) { + gutil.log(chalk.red('Failed to load external module'), chalk.magenta(name)); +}); + +cli.launch({ + cwd: argv.cwd, + configPath: argv.gulpfile, + require: argv.require, + completion: argv.completion +}, handleArguments); + +// the actual logic +function handleArguments(env) { + if (versionFlag) { + gutil.log('CLI version', cliPackage.version); + if (env.modulePackage) { + gutil.log('Local version', env.modulePackage.version); + } + process.exit(0); + } + + if (!env.modulePath) { + gutil.log( + chalk.red('Local gulp not found in'), + chalk.magenta(tildify(env.cwd)) + ); + gutil.log(chalk.red('Try running: npm install gulp')); + process.exit(1); + } + + if (!env.configPath) { + gutil.log(chalk.red('No gulpfile found')); + process.exit(1); + } + + // check for semver difference between cli and local installation + if (semver.gt(cliPackage.version, env.modulePackage.version)) { + gutil.log(chalk.red('Warning: gulp version mismatch:')); + gutil.log(chalk.red('Global gulp is', cliPackage.version)); + gutil.log(chalk.red('Local gulp is', env.modulePackage.version)); + } + + // chdir before requiring gulpfile to make sure + // we let them chdir as needed + if (process.cwd() !== env.cwd) { + process.chdir(env.cwd); + gutil.log( + 'Working directory changed to', + chalk.magenta(tildify(env.cwd)) + ); + } + + // this is what actually loads up the gulpfile + require(env.configPath); + gutil.log('Using gulpfile', chalk.magenta(tildify(env.configPath))); + + var gulpInst = require(env.modulePath); + logEvents(gulpInst); + + process.nextTick(function () { + if (simpleTasksFlag) { + return logTasksSimple(env, gulpInst); + } + if (tasksFlag) { + return logTasks(env, gulpInst); + } + gulpInst.start.apply(gulpInst, toRun); + }); +} + +function logTasks(env, localGulp) { + var tree = taskTree(localGulp.tasks); + tree.label = 'Tasks for ' + chalk.magenta(tildify(env.configPath)); + archy(tree) + .split('\n') + .forEach(function (v) { + if (v.trim().length === 0) { + return; + } + gutil.log(v); + }); +} + +function logTasksSimple(env, localGulp) { + console.log(Object.keys(localGulp.tasks) + .join('\n') + .trim()); +} + +// format orchestrator errors +function formatError(e) { + if (!e.err) { + return e.message; + } + + if (typeof e.err === 'string') { + return new Error(e.err).stack; + } + + // PluginError + if (typeof e.err.showStack === 'boolean') { + return e.err.toString(); + } else { + return e.err.stack; + } +} + +// wire up logging events +function logEvents(gulpInst) { + + // total hack due to fucked up error management in orchestrator + gulpInst.on('err', function () { + failed = true; + }); + + gulpInst.on('task_start', function (e) { + // TODO: batch these + // so when 5 tasks start at once it only logs one time with all 5 + gutil.log('Starting', '\'' + chalk.cyan(e.task) + '\'...'); + }); + + gulpInst.on('task_stop', function (e) { + var time = prettyTime(e.hrDuration); + gutil.log( + 'Finished', '\'' + chalk.cyan(e.task) + '\'', + 'after', chalk.magenta(time) + ); + }); + + gulpInst.on('task_err', function (e) { + var msg = formatError(e); + var time = prettyTime(e.hrDuration); + gutil.log( + '\'' + chalk.cyan(e.task) + '\'', + chalk.red('errored after'), + chalk.magenta(time) + ); + gutil.log(msg); + }); + + gulpInst.on('task_not_found', function (err) { + gutil.log( + chalk.red('Task \'' + err.task + '\' is not in your gulpfile') + ); + gutil.log('Please check the documentation for proper gulpfile formatting'); + process.exit(1); + }); +} + diff --git a/ajax/libs/gulp/package.json b/ajax/libs/gulp/package.json new file mode 100644 index 000000000..2b7f3e711 --- /dev/null +++ b/ajax/libs/gulp/package.json @@ -0,0 +1,27 @@ +{ + "name": "gulp", + "filename": "gulp.js", + "description": "The streaming build system", + "version": "3.8.5", + "homepage": "http://gulpjs.com", + "repository": { + "type": "git", + "url": "git@github.com:gulpjs/gulp.git" + }, + "author": "Fractal (http://wearefractal.com/)", + "tags": [ + "build", + "stream", + "system", + "make", + "tool", + "asset", + "pipeline" + ], + "licenses": [ + { + "type": "MIT", + "url": "https://raw.githubusercontent.com/gulpjs/gulp/master/LICENSE" + } + ] +} \ No newline at end of file From 8bd6f6daaf2dd5135ca29baa7888f35ee0ceb2ed Mon Sep 17 00:00:00 2001 From: Juan Gallardo Date: Wed, 2 Jul 2014 09:10:47 -0700 Subject: [PATCH 2/2] Added a minified version --- ajax/libs/gulp/3.8.5/gulp.min.js | 1 + ajax/libs/gulp/package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 ajax/libs/gulp/3.8.5/gulp.min.js diff --git a/ajax/libs/gulp/3.8.5/gulp.min.js b/ajax/libs/gulp/3.8.5/gulp.min.js new file mode 100644 index 000000000..d0a91a150 --- /dev/null +++ b/ajax/libs/gulp/3.8.5/gulp.min.js @@ -0,0 +1 @@ +#!/usr/bin/env node'use strict';var gutil=require('gulp-util');var prettyTime=require('pretty-hrtime');var chalk=require('chalk');var semver=require('semver');var archy=require('archy');var Liftoff=require('liftoff');var tildify=require('tildify');var interpret=require('interpret');var completion=require('../lib/completion');var argv=require('minimist')(process.argv.slice(2));var taskTree=require('../lib/taskTree');process.env.INIT_CWD=process.cwd();var cli=new Liftoff({name:'gulp',completions:completion,extensions:interpret.jsVariants});var failed=false;process.once('exit',function(code){if(code===0&&failed){process.exit(1)}});var cliPackage=require('../package');var versionFlag=argv.v||argv.version;var tasksFlag=argv.T||argv.tasks;var tasks=argv._;var toRun=tasks.length?tasks:['default'];var simpleTasksFlag=argv['tasks-simple'];var shouldLog=!argv.silent&&!simpleTasksFlag;if(!shouldLog){gutil.log=function(){}}cli.on('require',function(name){gutil.log('Requiring external module',chalk.magenta(name))});cli.on('requireFail',function(name){gutil.log(chalk.red('Failed to load external module'),chalk.magenta(name))});cli.launch({cwd:argv.cwd,configPath:argv.gulpfile,require:argv.require,completion:argv.completion},handleArguments);function handleArguments(env){if(versionFlag){gutil.log('CLI version',cliPackage.version);if(env.modulePackage){gutil.log('Local version',env.modulePackage.version)}process.exit(0)}if(!env.modulePath){gutil.log(chalk.red('Local gulp not found in'),chalk.magenta(tildify(env.cwd)));gutil.log(chalk.red('Try running: npm install gulp'));process.exit(1)}if(!env.configPath){gutil.log(chalk.red('No gulpfile found'));process.exit(1)}if(semver.gt(cliPackage.version,env.modulePackage.version)){gutil.log(chalk.red('Warning: gulp version mismatch:'));gutil.log(chalk.red('Global gulp is',cliPackage.version));gutil.log(chalk.red('Local gulp is',env.modulePackage.version))}if(process.cwd()!==env.cwd){process.chdir(env.cwd);gutil.log('Working directory changed to',chalk.magenta(tildify(env.cwd)))}require(env.configPath);gutil.log('Using gulpfile',chalk.magenta(tildify(env.configPath)));var gulpInst=require(env.modulePath);logEvents(gulpInst);process.nextTick(function(){if(simpleTasksFlag){return logTasksSimple(env,gulpInst)}if(tasksFlag){return logTasks(env,gulpInst)}gulpInst.start.apply(gulpInst,toRun)})}function logTasks(env,localGulp){var tree=taskTree(localGulp.tasks);tree.label='Tasks for '+chalk.magenta(tildify(env.configPath));archy(tree).split('\n').forEach(function(v){if(v.trim().length===0){return}gutil.log(v)})}function logTasksSimple(env,localGulp){console.log(Object.keys(localGulp.tasks).join('\n').trim())}function formatError(e){if(!e.err){return e.message}if(typeof e.err==='string'){return new Error(e.err).stack}if(typeof e.err.showStack==='boolean'){return e.err.toString()}else{return e.err.stack}}function logEvents(gulpInst){gulpInst.on('err',function(){failed=true});gulpInst.on('task_start',function(e){gutil.log('Starting','\''+chalk.cyan(e.task)+'\'...')});gulpInst.on('task_stop',function(e){var time=prettyTime(e.hrDuration);gutil.log('Finished','\''+chalk.cyan(e.task)+'\'','after',chalk.magenta(time))});gulpInst.on('task_err',function(e){var msg=formatError(e);var time=prettyTime(e.hrDuration);gutil.log('\''+chalk.cyan(e.task)+'\'',chalk.red('errored after'),chalk.magenta(time));gutil.log(msg)});gulpInst.on('task_not_found',function(err){gutil.log(chalk.red('Task \''+err.task+'\' is not in your gulpfile'));gutil.log('Please check the documentation for proper gulpfile formatting');process.exit(1)})} \ No newline at end of file diff --git a/ajax/libs/gulp/package.json b/ajax/libs/gulp/package.json index 2b7f3e711..01bfc4ebc 100644 --- a/ajax/libs/gulp/package.json +++ b/ajax/libs/gulp/package.json @@ -1,6 +1,6 @@ { "name": "gulp", - "filename": "gulp.js", + "filename": "gulp.min.js", "description": "The streaming build system", "version": "3.8.5", "homepage": "http://gulpjs.com",