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/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 new file mode 100644 index 000000000..01bfc4ebc --- /dev/null +++ b/ajax/libs/gulp/package.json @@ -0,0 +1,27 @@ +{ + "name": "gulp", + "filename": "gulp.min.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