/
slushfile.js
64 lines (63 loc) · 1.71 KB
/
slushfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
var gulp = require('gulp')
var install = require('gulp-install')
var conflict = require('gulp-conflict')
var template = require('gulp-template')
var rename = require('gulp-rename')
var inquirer = require('inquirer')
var licenses = require('osi-licenses')
gulp.task('default', function (done) {
inquirer.prompt([{
type: 'input',
name: 'name',
message: 'Name your app',
// Get app name from arguments by default
default: gulp.args.join(' ')
}, {
type: 'input',
name: 'description',
message: 'What does your app do?',
default: "lit shit"
}, {
type: 'input',
name: 'author',
message: 'What is your name on GitHub?',
default: 'author'
}, {
type: 'list',
name: 'license',
message: 'Choose a license:',
choices: Object.keys(licenses),
default: 'MIT'
}, {
type: 'confirm',
name: 'moveon',
message: 'Continue?'
}])
.then(function (answers) {
if (!answers.moveon) {
return done()
}
// Note use of __dirname to be relative to generator
gulp.src(__dirname + '/template/**', {
// Include dotfiles
dot: true
})
// Lodash template support
.pipe(template(answers))
// Rename dotfiles
.pipe(rename(function (file) {
if (file.basename[0] === '_') {
file.basename = '.' + file.basename.slice(1)
}
}))
// Confirms overwrites on file conflicts
.pipe(conflict('./'))
// Without __dirname here = relative to cwd
.pipe(gulp.dest('./'))
// Run `bower install` and/or `npm install` if necessary
.pipe(install())
.on('finish', function () {
done() // Finished!
})
})
})