199 lines
4.5 KiB
JavaScript
199 lines
4.5 KiB
JavaScript
module.exports = function( grunt ) {
|
|
|
|
require('load-grunt-tasks')(grunt);
|
|
|
|
var pkg = grunt.file.readJSON( 'package.json' );
|
|
|
|
var bannerTemplate = '/**\n' +
|
|
' * <%= pkg.title %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n' +
|
|
' * <%= pkg.author.url %>\n' +
|
|
' *\n' +
|
|
' * Copyright (c) <%= grunt.template.today("yyyy") %>;\n' +
|
|
' * Licensed GPLv2+\n' +
|
|
' */\n';
|
|
|
|
var compactBannerTemplate = '/** ' +
|
|
'<%= pkg.title %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %> | <%= pkg.author.url %> | Copyright (c) <%= grunt.template.today("yyyy") %>; | Licensed GPLv2+' +
|
|
' **/\n';
|
|
|
|
// Project configuration
|
|
grunt.initConfig( {
|
|
|
|
pkg: pkg,
|
|
watch: {
|
|
styles: {
|
|
files: ['assets/**/*.css','assets/**/*.scss'],
|
|
tasks: ['styles'],
|
|
options: {
|
|
spawn: false,
|
|
livereload: true,
|
|
debounceDelay: 500
|
|
}
|
|
},
|
|
scripts: {
|
|
files: ['assets/**/*.js'],
|
|
tasks: ['scripts'],
|
|
options: {
|
|
spawn: false,
|
|
livereload: true,
|
|
debounceDelay: 500
|
|
}
|
|
},
|
|
php: {
|
|
files: ['**/*.php', '!vendor/**.*.php'],
|
|
tasks: ['php'],
|
|
options: {
|
|
spawn: false,
|
|
debounceDelay: 500
|
|
}
|
|
}
|
|
},
|
|
|
|
makepot: {
|
|
dist: {
|
|
options: {
|
|
domainPath: '/languages/',
|
|
potFilename: pkg.name + '.pot',
|
|
type: 'wp-plugin'
|
|
}
|
|
}
|
|
},
|
|
|
|
addtextdomain: {
|
|
dist: {
|
|
options: {
|
|
textdomain: pkg.name
|
|
},
|
|
target: {
|
|
files: {
|
|
src: ['**/*.php']
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
replace: {
|
|
version_php: {
|
|
src: [
|
|
'**/*.php',
|
|
'!public/includes/lib/**',
|
|
],
|
|
overwrite: true,
|
|
replacements: [ {
|
|
from: /Version:(\s*?)[a-zA-Z0-9\.\-\+]+$/m,
|
|
to: 'Version:$1' + pkg.version
|
|
}, {
|
|
from: /@version(\s*?)[a-zA-Z0-9\.\-\+]+$/m,
|
|
to: '@version$1' + pkg.version
|
|
}, {
|
|
from: /@since(.*?)NEXT/mg,
|
|
to: '@since$1' + pkg.version
|
|
}, {
|
|
from: /VERSION(\s*?)=(\s*?['"])[a-zA-Z0-9\.\-\+]+/mg,
|
|
to: 'VERSION$1=$2' + pkg.version
|
|
} ]
|
|
},
|
|
version_readme: {
|
|
src: 'readme.txt',
|
|
overwrite: true,
|
|
replacements: [ {
|
|
from: /^Stable tag:(\s*?)[a-zA-Z0-9.-]+(\s*?)$/mi,
|
|
to: 'Stable tag:$1<%= pkg.version %>$2'
|
|
} ]
|
|
},
|
|
readme_txt: {
|
|
src: 'readme.txt',
|
|
dest: 'release/' + pkg.version + '/readme.txt',
|
|
replacements: [ {
|
|
from: /^# (.*?)( #+)?$/mg,
|
|
to: '=== $1 ==='
|
|
}, {
|
|
from: /^## (.*?)( ##+)?$/mg,
|
|
to: '== $1 =='
|
|
}, {
|
|
from: /^### (.*?)( ###+)?$/mg,
|
|
to: '= $1 ='
|
|
}, {
|
|
from: /^\*\*(.*?):\*\*/mg,
|
|
to: '$1:'
|
|
} ]
|
|
}
|
|
},
|
|
|
|
copy: {
|
|
release: {
|
|
src: [
|
|
'**',
|
|
'!.git',
|
|
'!.github',
|
|
'!.gitignore',
|
|
'!CHANGELOG.md',
|
|
'!CODEOWNERS',
|
|
'!Gruntfile.js',
|
|
'!package.json',
|
|
'!package-lock.json',
|
|
|
|
'!assets/repo/**',
|
|
|
|
'!**/*.scss',
|
|
'!**/node_modules/**',
|
|
'!release/**',
|
|
'!external/**',
|
|
|
|
],
|
|
dest: 'release/' + pkg.version + '/'
|
|
},
|
|
svn: {
|
|
cwd: 'release/<%= pkg.version %>/',
|
|
expand: true,
|
|
src: '**',
|
|
dest: 'release/svn/'
|
|
}
|
|
},
|
|
|
|
compress: {
|
|
dist: {
|
|
options: {
|
|
mode: 'zip',
|
|
archive: './release/<%= pkg.name %>.<%= pkg.version %>.zip'
|
|
},
|
|
expand: true,
|
|
cwd: 'release/<%= pkg.version %>',
|
|
src: ['**/*'],
|
|
dest: '<%= pkg.name %>'
|
|
}
|
|
},
|
|
|
|
wp_deploy: {
|
|
dist: {
|
|
options: {
|
|
plugin_slug: '<%= pkg.name %>',
|
|
svn_user: "croixhaug",
|
|
build_dir: 'release/svn/',
|
|
assets_dir: 'assets/repo/'
|
|
}
|
|
}
|
|
},
|
|
|
|
clean: {
|
|
release: [
|
|
'release/<%= pkg.version %>/',
|
|
'release/svn/'
|
|
]
|
|
}
|
|
|
|
} );
|
|
|
|
grunt.registerTask( 'scripts', [] );
|
|
grunt.registerTask( 'styles', [] );
|
|
grunt.registerTask( 'php', [ 'addtextdomain', 'makepot' ] );
|
|
grunt.registerTask( 'default', ['styles', 'scripts', 'php'] );
|
|
|
|
grunt.registerTask( 'version', [ 'default', 'replace:version_php', 'replace:version_readme' ] );
|
|
grunt.registerTask( 'release', [ 'clean:release', 'replace:readme_txt', 'copy', 'compress' ] );
|
|
grunt.registerTask( 'wporg', [ 'clean:release', 'replace:readme_txt', 'copy' ] );
|
|
grunt.registerTask( 'increment-version', [ 'replace:version_php', 'replace:version_readme' ] );
|
|
|
|
grunt.util.linefeed = '\n';
|
|
};
|