github.com/lunarobliq/gophish@v0.8.1-0.20230523153303-93511002234d/gulpfile.js (about) 1 /* 2 * gulpfile.js 3 * 4 * Description: The Gophish gulpfile 5 */ 6 7 var gulp = require('gulp'), 8 rename = require('gulp-rename'), 9 concat = require('gulp-concat'), 10 uglify = require('gulp-uglify-es').default, 11 cleanCSS = require('gulp-clean-css'), 12 babel = require('gulp-babel'), 13 14 js_directory = 'static/js/src/', 15 css_directory = 'static/css/', 16 vendor_directory = js_directory + 'vendor/', 17 app_directory = js_directory + 'app/', 18 dest_js_directory = 'static/js/dist/', 19 dest_css_directory = 'static/css/dist/'; 20 21 vendorjs = function () { 22 return gulp.src([ 23 vendor_directory + 'jquery.js', 24 vendor_directory + 'bootstrap.min.js', 25 vendor_directory + 'moment.min.js', 26 vendor_directory + 'papaparse.min.js', 27 vendor_directory + 'd3.min.js', 28 vendor_directory + 'topojson.min.js', 29 vendor_directory + 'datamaps.min.js', 30 vendor_directory + 'jquery.dataTables.min.js', 31 vendor_directory + 'dataTables.bootstrap.js', 32 vendor_directory + 'datetime-moment.js', 33 vendor_directory + 'jquery.ui.widget.js', 34 vendor_directory + 'jquery.fileupload.js', 35 vendor_directory + 'jquery.iframe-transport.js', 36 vendor_directory + 'sweetalert2.min.js', 37 vendor_directory + 'bootstrap-datetime.js', 38 vendor_directory + 'select2.min.js', 39 vendor_directory + 'core.min.js', 40 vendor_directory + 'highcharts.js', 41 vendor_directory + 'ua-parser.min.js' 42 ]) 43 .pipe(concat('vendor.js')) 44 .pipe(rename({ 45 suffix: '.min' 46 })) 47 .pipe(uglify()) 48 .pipe(gulp.dest(dest_js_directory)); 49 } 50 51 scripts = function () { 52 // Gophish app files - non-ES6 53 return gulp.src([ 54 app_directory + 'autocomplete.js', 55 app_directory + 'campaign_results.js', 56 app_directory + 'campaigns.js', 57 app_directory + 'dashboard.js', 58 app_directory + 'groups.js', 59 app_directory + 'landing_pages.js', 60 app_directory + 'sending_profiles.js', 61 app_directory + 'settings.js', 62 app_directory + 'templates.js', 63 app_directory + 'gophish.js', 64 app_directory + 'users.js', 65 app_directory + 'webhooks.js', 66 app_directory + 'passwords.js' 67 ]) 68 .pipe(rename({ 69 suffix: '.min' 70 })) 71 .pipe(uglify().on('error', function (e) { 72 console.log(e); 73 })) 74 .pipe(gulp.dest(dest_js_directory + 'app/')); 75 } 76 77 styles = function () { 78 return gulp.src([ 79 css_directory + 'bootstrap.min.css', 80 css_directory + 'main.css', 81 css_directory + 'dashboard.css', 82 css_directory + 'flat-ui.css', 83 css_directory + 'dataTables.bootstrap.css', 84 css_directory + 'font-awesome.min.css', 85 css_directory + 'chartist.min.css', 86 css_directory + 'bootstrap-datetime.css', 87 css_directory + 'checkbox.css', 88 css_directory + 'sweetalert2.min.css', 89 css_directory + 'select2.min.css', 90 css_directory + 'select2-bootstrap.min.css', 91 ]) 92 .pipe(cleanCSS({ 93 compatibilty: 'ie9' 94 })) 95 .pipe(concat('gophish.css')) 96 .pipe(gulp.dest(dest_css_directory)); 97 } 98 99 exports.vendorjs = vendorjs 100 exports.scripts = scripts 101 exports.styles = styles 102 exports.build = gulp.parallel(vendorjs, scripts, styles) 103 exports.default = exports.build