| @@ -2,9 +2,9 @@ | ||
| 2 | 2 | source_SCSS = 'scss/**/*.scss', |
| 3 | 3 | dest_CSS = './css/', |
| 4 | 4 | |
| 5 | 5 | gulp = require('gulp'), |
| 6 | - sass = require('gulp-ruby-sass'), | |
| 6 | + sass = require('gulp-sass'), | |
| 7 | 7 | prefix = require('gulp-autoprefixer'), |
| 8 | 8 | exec = require('gulp-exec'), |
| 9 | 9 | replace = require('gulp-replace'), |
| 10 | 10 | minify = require('gulp-minify-css'), |
| @@ -12,9 +12,8 @@ | ||
| 12 | 12 | notify = require('gulp-notify'), |
| 13 | 13 | beautify = require('gulp-beautify'), |
| 14 | 14 | csscomb = require('gulp-csscomb'), |
| 15 | 15 | cmq = require('gulp-combine-media-queries'), |
| 16 | - chmod = require('gulp-chmod'), | |
| 17 | 16 | fs = require('fs'), |
| 18 | 17 | rtlcss = require('rtlcss'), |
| 19 | 18 | postcss = require('gulp-postcss'), |
| 20 | 19 | del = require('del'), |
| @@ -40,9 +39,9 @@ | ||
| 40 | 39 | |
| 41 | 40 | // styles related |
| 42 | 41 | gulp.task('styles-dev', function () { |
| 43 | 42 | return gulp.src(source_SCSS) |
| 44 | - .pipe(sass({'sourcemap': false, style: 'compact'})) | |
| 43 | + .pipe(sass({'sourcemap': true, outputStyle: 'expanded'})) | |
| 45 | 44 | .on('error', function (e) { |
| 46 | 45 | console.log(e.message); |
| 47 | 46 | }) |
| 48 | 47 | .pipe(prefix("last 1 version", "> 1%", "ie 8", "ie 7")) |
| @@ -55,16 +54,15 @@ | ||
| 55 | 54 | }); |
| 56 | 55 | |
| 57 | 56 | gulp.task('styles', function () { |
| 58 | 57 | return gulp.src(source_SCSS) |
| 59 | - .pipe(sass({'sourcemap': true, style: 'expanded'})) | |
| 58 | + .pipe(sass({'sourcemap': false, outputStyle: 'compressed'})) | |
| 60 | 59 | .pipe(prefix("last 1 version", "> 1%", "ie 8", "ie 7")) |
| 61 | 60 | .pipe(csscomb()) |
| 62 | - .pipe(chmod(644)) | |
| 63 | - .pipe(gulp.dest(dest_CSS)) | |
| 61 | + .pipe(gulp.dest(dest_CSS, {"mode": "0644"})) | |
| 64 | 62 | }); |
| 65 | 63 | |
| 66 | -gulp.task('styles-watch', function () { | |
| 64 | +gulp.task('styles-watch', [ 'styles-dev' ], function () { | |
| 67 | 65 | return gulp.watch(source_SCSS, ['styles']); |
| 68 | 66 | }); |
| 69 | 67 | |
| 70 | 68 | // javascript stuff |
| @@ -71,10 +69,9 @@ | ||
| 71 | 69 | gulp.task('scripts', function () { |
| 72 | 70 | return gulp.src(jsFiles) |
| 73 | 71 | .pipe(concat('main.js')) |
| 74 | 72 | .pipe(beautify({indentSize: 2})) |
| 75 | - .pipe(chmod(644)) | |
| 76 | - .pipe(gulp.dest('./assets/js/')); | |
| 73 | + .pipe(gulp.dest('./assets/js/', {"mode": "0644"})); | |
| 77 | 74 | }); |
| 78 | 75 | |
| 79 | 76 | gulp.task('scripts-watch', function () { |
| 80 | 77 | return gulp.watch(source_SCSS, ['scripts']); |
| @@ -93,17 +90,36 @@ | ||
| 93 | 90 | gulp.task('server', ['styles', 'scripts'], function () { |
| 94 | 91 | console.log('The styles and scripts have been compiled for production! Go and clear the caches!'); |
| 95 | 92 | }); |
| 96 | 93 | |
| 97 | - | |
| 98 | 94 | /** |
| 99 | 95 | * Create a zip archive out of the cleaned folder and delete the folder |
| 100 | 96 | */ |
| 101 | 97 | gulp.task( 'zip', ['build'], function() { |
| 98 | + var versionString = ''; | |
| 99 | + // get plugin version from the main plugin file | |
| 100 | + var contents = fs.readFileSync("./" + plugin + ".php", "utf8"); | |
| 102 | 101 | |
| 103 | - return gulp.src( './' ) | |
| 104 | - .pipe( exec( 'cd ./../; rm -rf customify.zip; cd ./build/; zip -r -X ./../customify.zip ./customify; cd ./../; rm -rf build' ) ); | |
| 102 | + // split it by lines | |
| 103 | + var lines = contents.split(/[\r\n]/); | |
| 105 | 104 | |
| 105 | + function checkIfVersionLine(value, index, ar) { | |
| 106 | + var myRegEx = /^[\s\*]*[Vv]ersion:/; | |
| 107 | + if (myRegEx.test(value)) { | |
| 108 | + return true; | |
| 109 | + } | |
| 110 | + return false; | |
| 111 | + } | |
| 112 | + | |
| 113 | + // apply the filter | |
| 114 | + var versionLine = lines.filter(checkIfVersionLine); | |
| 115 | + | |
| 116 | + versionString = versionLine[0].replace(/^[\s\*]*[Vv]ersion:/, '').trim(); | |
| 117 | + versionString = '-' + versionString.replace(/\./g, '-'); | |
| 118 | + | |
| 119 | + return gulp.src('./') | |
| 120 | + .pipe(exec('cd ./../; rm -rf ' + plugin[0].toUpperCase() + plugin.slice(1) + '*.zip; cd ./build/; zip -r -X ./../' + plugin[0].toUpperCase() + plugin.slice(1) + versionString + '.zip ./; cd ./../; rm -rf build')); | |
| 121 | + | |
| 106 | 122 | } ); |
| 107 | 123 | |
| 108 | 124 | /** |
| 109 | 125 | * Copy theme folder outside in a build folder, recreate styles before that |
| @@ -125,8 +141,9 @@ | ||
| 125 | 141 | 'node_modules', |
| 126 | 142 | 'config.rb', |
| 127 | 143 | 'gulpfile.js', |
| 128 | 144 | 'package.json', |
| 145 | + 'package-lock.json', | |
| 129 | 146 | 'pxg.json', |
| 130 | 147 | 'build', |
| 131 | 148 | '.idea', |
| 132 | 149 | '**/*.css.map', |
| @@ -137,9 +154,20 @@ | ||
| 137 | 154 | '__MACOSX', |
| 138 | 155 | '**/__MACOSX', |
| 139 | 156 | '+development.rb', |
| 140 | 157 | '+production.rb', |
| 141 | - 'README.md' | |
| 158 | + 'README.md', | |
| 159 | + '.labels', | |
| 160 | + '.csscomb', | |
| 161 | + '.csscomb.json', | |
| 162 | + '.codeclimate.yml', | |
| 163 | + 'tests', | |
| 164 | + 'circle.yml', | |
| 165 | + '.circleci', | |
| 166 | + '.labels', | |
| 167 | + '.jscsrc', | |
| 168 | + '.jshintignore', | |
| 169 | + 'browserslist' | |
| 142 | 170 | ]; |
| 143 | 171 | |
| 144 | 172 | files_to_remove.forEach( function( e, k ) { |
| 145 | 173 | files_to_remove[k] = '../build/customify/' + e; |
| @@ -144,10 +172,9 @@ | ||
| 144 | 172 | files_to_remove.forEach( function( e, k ) { |
| 145 | 173 | files_to_remove[k] = '../build/customify/' + e; |
| 146 | 174 | } ); |
| 147 | 175 | |
| 148 | - return gulp.src( files_to_remove, {read: false} ) | |
| 149 | - .pipe( clean( {force: true} ) ); | |
| 176 | + return del.sync(files_to_remove, {force: true}); | |
| 150 | 177 | } ); |
| 151 | 178 | |
| 152 | 179 | // usually there is a default task for lazy people who just wanna type gulp |
| 153 | 180 | gulp.task('default', ['start'], function () { |