forked from alextselegidis/easyappointments
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
95 lines (81 loc) · 2.72 KB
/
gulpfile.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
var gulp = require('gulp'),
exec = require('child_process').execSync,
del = require('del'),
fs = require('fs-extra'),
path = require('path'),
zip = require('zip-dir');
/**
* Install and copy the required files from the "composer" directory.
*
* Composer needs to be installed and configured in order for this command to
* work properly.
*/
gulp.task('composer', function() {
del.sync([
'./composer',
'./src/vendor/**/*',
'!./src/vendor/index.html'
]);
exec('composer update && composer install --prefer-dist', function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
});
return gulp.src([
'composer/**/*',
'!composer/**/demo{,/**}',
'!composer/**/{demo,docs,examples,test,extras,language}{,/**}',
'!composer/**/{composer.json,composer.lock,.gitignore}',
'!composer/**/{*.yml,*.md}',
'!composer/codeigniter{,/**}'
])
.pipe(gulp.dest('./src/vendor/'));
});
/**
* Build the project and create an easyappointments.zip file ready for distribution.
*/
gulp.task('build', function(done) {
del.sync([
'.tmp-package',
'easyappointments.zip'
]);
fs.copySync('src', '.tmp-package');
fs.copySync('.tmp-package/config-sample.php', '.tmp-package/config.php');
fs.removeSync('.tmp-package/config-sample.php');
fs.copySync('CHANGELOG.md', '.tmp-package/CHANGELOG.md');
fs.copySync('README.md', '.tmp-package/README.md');
fs.copySync('LICENSE', '.tmp-package/LICENSE');
del.sync([
'.tmp-package/application/logs/*',
'!.tmp-package/application/logs/index.html'
]);
zip('.tmp-package', { saveTo: 'easyappointments.zip' }, function (err, buffer) {
if (err)
console.log('Zip Error', err);
done();
});
});
/**
* Generate code documentation.
*/
gulp.task('doc', function(done) {
fs.removeSync('doc/apigen');
fs.mkdirSync('doc/apigen');
fs.removeSync('doc/jsdoc');
fs.mkdirSync('doc/jsdoc');
fs.removeSync('doc/plato');
fs.mkdirSync('doc/plato');
var commands = [
'php rsc/apigen.phar generate ' +
'-s "src/application/controllers,src/application/models,src/application/libraries" ' +
'-d "doc/apigen" --exclude "*external*" --tree --todo --template-theme "bootstrap"',
path.join('.', 'node_modules', '.bin', 'jsdoc') + ' "src/assets/js" -d "doc/jsdoc"',
path.join('.', 'node_modules', '.bin', 'plato') + ' -r -d "doc/plato" "src/assets/js"'
];
commands.forEach(function(command) {
exec(command, function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
});
});
done();
});