]> git.agnieray.net Git - galette.git/blob - gulpfile.js
Bump version
[galette.git] / gulpfile.js
1 var gulp = require('gulp');
2
3 const { series, parallel } = require('gulp');
4 var del = require('del');
5 var uglify = require('gulp-uglify');
6 var cleanCSS = require('gulp-clean-css');
7 var merge = require('merge-stream');
8 var concat = require('gulp-concat');
9 var replace = require('gulp-replace');
10
11 var galette = {
12 'modules': './node_modules/',
13 'public': './galette/webroot/assets/'
14 };
15
16 var main_styles = [
17 './galette/webroot/themes/default/galette.css',
18 './node_modules/@fortawesome/fontawesome-free/css/all.css',
19 './node_modules/jquery-ui-dist/jquery-ui.css',
20 './galette/webroot/themes/default/jquery-ui/jquery-ui-1.12.1.custom.css',
21 './node_modules/selectize/dist/css/selectize.default.css',
22 ];
23
24 var main_scripts = [
25 './node_modules/jquery/dist/jquery.js',
26 './node_modules/jquery-ui-dist/jquery-ui.js',
27 './node_modules/jquery-ui/ui/i18n/*',
28 './node_modules/jquery.cookie/jquery.cookie.js',
29 './node_modules/microplugin/src/microplugin.js',
30 './node_modules/sifter/sifter.js',
31 './node_modules/selectize/dist/js/selectize.min.js',
32 './galette/webroot/js/jquery/jquery.bgFade.js',
33 './galette/webroot/js/common.js',
34 ];
35
36 var main_assets = [
37 {
38 'src': './node_modules/@fortawesome/fontawesome-free/webfonts/*',
39 'dest': '/webfonts/'
40 }, {
41 'src': './node_modules/jquery-ui-dist/images/*',
42 'dest': '/images/'
43 }, {
44 'src': './galette/webroot/themes/default/jquery-ui/images/*',
45 'dest': '/images/'
46 }, {
47 'src': './galette/webroot/themes/default/images/desktop/*',
48 'dest': '/images/desktop/'
49 }, {
50 'src': './node_modules/jstree/dist/themes/default/32px.png',
51 'dest': '/images/'
52 }, {
53 'src': './node_modules/jstree/dist/themes/default/40px.png',
54 'dest': '/images/'
55 }, {
56 'src': './node_modules/jstree/dist/themes/default/throbber.gif',
57 'dest': '/images/'
58 }
59 ];
60
61 const clean = function(cb) {
62 del([galette.public]);
63 cb();
64 };
65
66 function watch() {
67 //wilcards are mandatory for task not to run only once...
68 gulp.watch('./galette/webroot/themes/**/*.css', series(styles));
69 gulp.watch('./galette/webroot/js/*.js', series(scripts));
70 };
71
72 function styles() {
73 var _dir = galette.public + '/css/';
74
75 main = gulp.src(main_styles)
76 .pipe(replace('jquery-ui/images/', '../images/'))
77 .pipe(replace('("images/ui', '("../images/ui')) //
78 .pipe(replace('url(images/', 'url(../images/'))
79 .pipe(cleanCSS())
80 .pipe(concat('galette-main.bundle.min.css'))
81 .pipe(gulp.dest(_dir));
82
83 jstree = gulp.src('./node_modules/jstree/dist/themes/default/style.css')
84 .pipe(replace('url("32px', 'url("../images/32px'))
85 .pipe(replace('url("40px', 'url("../images/40px'))
86 .pipe(replace('url("throbber', 'url("../images/throbber'))
87 .pipe(concat('galette-jstree.bundle.min.css'))
88 .pipe(cleanCSS())
89 .pipe(gulp.dest(_dir));
90
91 jqplot = gulp.src('./galette/webroot/js/jquery/jqplot-1.0.8r1250/jquery.jqplot.css')
92 .pipe(concat('galette-jqplot.bundle.min.css'))
93 .pipe(cleanCSS())
94 .pipe(gulp.dest(_dir));
95
96 return merge(main, jstree, jqplot);
97 };
98
99 function scripts() {
100 var _dir = galette.public + '/js/';
101
102 main = gulp.src(main_scripts)
103 .pipe(concat('galette-main.bundle.min.js'))
104 .pipe(uglify())
105 .pipe(gulp.dest(_dir));
106
107 jstree = gulp.src('./node_modules/jstree/dist/jstree.min.js')
108 .pipe(concat('galette-jstree.bundle.min.js'))
109 .pipe(uglify())
110 .pipe(gulp.dest(_dir));
111
112 //use local lib, npm one is missing plugins :/
113 jqplot = gulp.src([
114 './galette/webroot/js/jquery/jqplot-1.0.8r1250/jquery.jqplot.min.js',
115 './galette/webroot/js/jquery/jqplot-1.0.8r1250/plugins/jqplot.barRenderer.min.js',
116 './galette/webroot/js/jquery/jqplot-1.0.8r1250/plugins/jqplot.categoryAxisRenderer.min.js',
117 './galette/webroot/js/jquery/jqplot-1.0.8r1250/plugins/jqplot.pieRenderer.min.js',
118 './galette/webroot/js/jquery/jqplot-1.0.8r1250/plugins/jqplot.pointLabels.min.js',
119 ])
120 .pipe(concat('galette-jqplot.bundle.min.js'))
121 .pipe(uglify())
122 .pipe(gulp.dest(_dir));
123
124 return merge(main, jstree, jqplot);
125 };
126
127 function assets() {
128 main = main_assets.map(function (asset) {
129 return gulp.src(asset.src)
130 .pipe(gulp.dest(galette.public + asset.dest));
131 }
132 );
133
134 return merge(main);
135 };
136
137 exports.clean = clean;
138 exports.watch = watch;
139
140 exports.styles = styles;
141 exports.scripts = scripts;
142 exports.assets = assets;
143
144 exports.build = series(styles, scripts, assets);
145 exports.default = exports.build;