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');
24 style_uni: 'themes/style_*.scss',
25 style_color: 'themes/colors/*.scss',
26 all: 'themes/**/style_*.css',
27 all_rtl: 'themes/**/*style_*.css',
38 // clean - will make even stricter once css files are no longer committed
39 gulp.task('clean', function () {
40 let ignore = "!" + config.dist.storybook+ '.gitignore';
41 del.sync([config.dist.storybook + "*", ignore]);
44 gulp.task('ingest', function() {
45 if (config.dev && typeof config.dev !== "boolean") {
46 // allows for custom proxy to be passed into script
47 config.proxy = config.dev;
52 gulp.task('sync', ['styles'], function() {
55 proxy: "localhost:" + config.proxy
60 gulp.watch('themes/**/*.scss', ['styles']);
62 // hack to get font awesome files into the .out directory
64 '../public/assets/font-awesome-4-6-3/fonts/**/*.{ttf,woff,eof,svg}'
66 .pipe(gulp.dest(config.dist.storybook));
71 const autoGeneratedHeader = `
72 /*! This style sheet was autogenerated using gulp + scss
73 * For usage instructions, see: https://github.com/openemr/openemr/blob/master/interface/README.md
76 gulp.task('styles:style_uni', function () {
77 gulp.src(config.src.styles.style_uni)
78 .pipe(sourcemaps.init())
79 .pipe(sass().on('error', sass.logError))
80 .pipe(prefix('last 1 version'))
81 .pipe(gap.prependText(autoGeneratedHeader))
82 .pipe(gulpif(!config.dev, csso()))
83 .pipe(sourcemaps.write())
84 .pipe(gulp.dest(config.dest.themes))
85 .pipe(gulpif(!config.dev, gulp.dest(config.dist.storybook + config.dest.themes)))
86 .pipe(gulpif(config.dev, reload({stream:true})));
89 gulp.task('styles:style_color', function () {
90 gulp.src(config.src.styles.style_color)
91 .pipe(sourcemaps.init())
92 .pipe(sass().on('error', sass.logError))
93 .pipe(prefix('last 1 version'))
94 .pipe(gap.prependText(autoGeneratedHeader))
95 .pipe(gulpif(!config.dev, csso()))
96 .pipe(sourcemaps.write())
97 .pipe(gulp.dest(config.dest.themes))
98 .pipe(gulpif(!config.dev, gulp.dest(config.dist.storybook + config.dest.themes)))
99 .pipe(gulpif(config.dev, reload({stream:true})));
102 gulp.task('styles:rtl', function () {
103 gulp.src(config.src.styles.all)
104 .pipe(sourcemaps.init())
105 .pipe(sass().on('error', sass.logError))
106 .pipe(prefix('last 1 version'))
107 .pipe(gulpif(!config.dev, csso()))
108 .pipe(sourcemaps.write())
109 .pipe(gap.appendFile('themes/rtl.css'))
114 .pipe(gulp.dest(config.dest.themes))
115 .pipe(gulpif(!config.dev, 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']);
128 gulp.task('default', [ 'ingest', 'sync' ]);
130 gulp.task('default', function (callback) {
131 runSequence('clean', ['sync'], callback)