assets.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*******************************
  2. Build Task
  3. *******************************/
  4. var
  5. gulp = require('gulp'),
  6. // gulp dependencies
  7. chmod = require('gulp-chmod'),
  8. gulpif = require('gulp-if'),
  9. normalize = require('normalize-path'),
  10. print = require('gulp-print').default,
  11. // config
  12. config = require('../config/user'),
  13. tasks = require('../config/tasks'),
  14. install = require('../config/project/install'),
  15. log = tasks.log
  16. ;
  17. function build(src, config) {
  18. return gulp.src(src, {base: config.paths.source.themes})
  19. .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
  20. .pipe(gulp.dest(config.paths.output.themes))
  21. .pipe(print(log.created))
  22. ;
  23. }
  24. function buildAssets(src, config, callback) {
  25. if (!install.isSetup()) {
  26. console.error('Cannot build assets. Run "gulp install" to set-up Semantic');
  27. callback();
  28. return;
  29. }
  30. if (callback === undefined) {
  31. callback = config;
  32. config = src;
  33. src = config.paths.source.themes + '/**/assets/**/*.*';
  34. }
  35. // copy assets
  36. var assets = () => build(src, config);
  37. assets.displayName = "Building Assets";
  38. gulp.series(assets)(callback);
  39. }
  40. module.exports = function (callback) {
  41. buildAssets(config, callback);
  42. };
  43. module.exports.watch = function (type, config) {
  44. gulp
  45. .watch([normalize(config.paths.source.themes + '/**/assets/**/*.*')])
  46. .on('all', function (event, path) {
  47. console.log('Change in assets detected');
  48. return gulp.series((callback) => buildAssets(path, config, callback))();
  49. });
  50. };
  51. module.exports.buildAssets = buildAssets;