4 var browserSync = require('browser-sync');
5 var csso = require('gulp-csso');
6 var del = require('del');
7 var gap = require('gulp-append-prepend');
8 var gulp = require('gulp');
9 var argv = require('minimist')(process.argv.slice(2));
10 var gulpif = require('gulp-if');
11 var prefix = require('gulp-autoprefixer');
12 var reload = browserSync.reload;
13 var rename = require('gulp-rename');
14 var runSequence = require('run-sequence');
15 var sass = require('gulp-sass');
16 var sourcemaps = require('gulp-sourcemaps');
21 build: argv['b'], // temporary until build == production
25 style_uni: 'themes/style_*.scss',
26 style_color: 'themes/colors/*.scss',
27 all: 'themes/**/style_*.css',
28 all_rtl: 'themes/**/*style_*.css',
39 // clean - will make even stricter once css files are no longer committed
40 gulp.task('clean', function () {
41 let ignore = "!" + config.dist.storybook+ '.gitignore';
42 del.sync([config.dist.storybook + "*", ignore]);
45 gulp.task('ingest', function () {
46 if (config.dev && typeof config.dev !== "boolean") {
47 // allows for custom proxy to be passed into script
48 config.proxy = config.dev;
53 gulp.task('sync', ['styles'], function () {
56 proxy: "127.0.0.1:" + config.proxy
60 if (config.dev && !config.build) {
61 gulp.watch('themes/**/*.scss', ['styles']);
63 // hack to get font awesome files into the .out directory
65 '../public/assets/font-awesome-4-6-3/fonts/**/*.{ttf,woff,eof,svg}'
67 .pipe(gulp.dest(config.dist.storybook));
72 const autoGeneratedHeader = `
73 /*! This style sheet was autogenerated using gulp + scss
74 * For usage instructions, see: https://github.com/openemr/openemr/blob/master/interface/README.md
77 gulp.task('styles:style_uni', function () {
78 gulp.src(config.src.styles.style_uni)
79 .pipe(sourcemaps.init())
80 .pipe(sass().on('error', sass.logError))
81 .pipe(prefix('last 1 version'))
82 .pipe(gap.prependText(autoGeneratedHeader))
83 .pipe(gulpif(!config.dev, csso()))
84 .pipe(gulpif(!config.dev,sourcemaps.write()))
85 .pipe(gulp.dest(config.dest.themes))
86 .pipe(gulpif(config.build, gulp.dest(config.dist.storybook + config.dest.themes)))
87 .pipe(gulpif(config.dev, reload({stream:true})));
90 gulp.task('styles:style_color', function () {
91 gulp.src(config.src.styles.style_color)
92 .pipe(sourcemaps.init())
93 .pipe(sass().on('error', sass.logError))
94 .pipe(prefix('last 1 version'))
95 .pipe(gap.prependText(autoGeneratedHeader))
96 .pipe(gulpif(!config.dev, csso()))
97 .pipe(gulpif(!config.dev,sourcemaps.write()))
98 .pipe(gulp.dest(config.dest.themes))
99 .pipe(gulpif(config.build, gulp.dest(config.dist.storybook + config.dest.themes)))
100 .pipe(gulpif(config.dev, reload({stream:true})));
103 gulp.task('styles:rtl', function () {
104 gulp.src(config.src.styles.all)
105 .pipe(sourcemaps.init())
106 .pipe(sass().on('error', sass.logError))
107 .pipe(prefix('last 1 version'))
108 .pipe(gulpif(!config.dev, csso()))
109 .pipe(gap.appendFile('themes/rtl.css'))
114 .pipe(gulp.dest(config.dest.themes))
115 .pipe(gulpif(config.build, gulp.dest(config.dist.storybook + config.dest.themes)))
116 .pipe(gulpif(config.dev, reload({stream:true})));
119 gulp.task('styles:style_list', function () {
120 gulp.src(config.src.styles.all_rtl)
121 .pipe(require('gulp-filelist')('themeOptions.json', {flatten: true, removeExtensions: true}))
122 .pipe(gulp.dest('.storybook'));
125 gulp.task('styles', ['styles:style_uni', 'styles:style_color', 'styles:rtl', 'styles:style_list']);
127 if (config.dev && !config.build) {
128 gulp.task('default', [ 'ingest', 'sync' ]);
130 gulp.task('default', function (callback) {
131 runSequence('clean', ['sync'], callback)