bim-gulp
Version:
Workflow gulp
67 lines (58 loc) • 2.29 kB
JavaScript
const {src, series, dest} = require('gulp')
const path = require('path')
const prompts = require('prompts')
const consolidate = require('gulp-consolidate')
const camelCase = require('camelcase');
const rename = require('gulp-rename')
const conf = require('../../utils/Config')
const messenger = require('../../utils/Messenger')
/**
* Effectue la tache de font dans un bundle précis.
* @param bundlePath
* @return {any}
*/
function createTask(done) {
prompts([
{
type: 'text',
name: 'task',
message: 'Quel est le nom de la tâche que vous souhaitez créer ?',
},
{
type: 'text',
name: 'description',
message: 'Quel est le rôle de votre tâche ?',
},
{
type: 'text',
name: 'dir',
message: 'Dans quel répertoire voulez vous la créer ?',
}
]).then(result => doCreateTask(result, done))
}
function doCreateTask(options, done) {
options.camelTask = camelCase(options.task)
series((done) => {
return src(path.join(__dirname, 'templates', '*.js'))
.pipe(consolidate('lodash', options))
.pipe(rename((path) => {
// On renomme le fichier de tache au couleur de la tache.
if (path.basename === 'task') {
path.basename = options.camelTask
}
return path
}))
.pipe(dest(path.join(conf.root, options.dir, options.camelTask)))
.on('end', () => {
messenger.info("================ IMPORTANT ===========================")
messenger.info("N'oubliez pas de loader les taches de ce répertoire ")
messenger.info("Ajoutez la ligne suivante dans le gulpfile : ")
messenger.info("taskLoader.loadTask('./" + options.dir + "', exports);")
messenger.info(" ")
messenger.info("Ensuite vous pourrez lancer la commande ")
messenger.info("./gulp " + options.camelTask)
messenger.info("======================================================")
})
})(done);
}
exports['create-task'] = createTask;