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