-
Notifications
You must be signed in to change notification settings - Fork 1
/
gulpfile.js
78 lines (72 loc) · 2.02 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
const args = require('yargs').argv;
const bump = require('gulp-bump');
const checktextdomain = require('gulp-checktextdomain');
const fs = require('fs');
const gulp = require('gulp');
const potomo = require('gulp-potomo');
const pottopo = require('gulp-pottopo');
const pump = require('pump');
const sort = require('gulp-sort');
const wpPot = require('gulp-wp-pot');
const yaml = require('js-yaml');
const config = yaml.load(fs.readFileSync('+/config.yml'));
gulp.task('bump', cb => {
var type = 'patch';
['prerelease','patch','minor','major'].some(arg => {
if (!args[arg]) return;
type = arg;
return true;
});
pump([
gulp.src(config.bump),
bump({type:type,keys:['stable tag','version']}),
gulp.dest('.'),
], cb);
});
gulp.task('po-to-mo', cb => {
pump([
gulp.src(config.language.destination + '*.po'),
potomo(),
gulp.dest(config.language.destination),
], cb);
});
gulp.task('pot', cb => {
pump([
gulp.src(config.language.watch),
checktextdomain({
text_domain: config.language.domain,
keywords: [
'__:1,2d',
'_e:1,2d',
'_x:1,2c,3d',
'esc_html__:1,2d',
'esc_html_e:1,2d',
'esc_html_x:1,2c,3d',
'esc_attr__:1,2d',
'esc_attr_e:1,2d',
'esc_attr_x:1,2c,3d',
'_ex:1,2c,3d',
'_n:1,2,4d',
'_nx:1,2,4c,5d',
'_n_noop:1,2,3d',
'_nx_noop:1,2,3c,4d',
],
}),
sort(),
wpPot({
domain: config.language.domain,
includePOTCreationDate: false,
lastTranslator: config.language.translator,
team: config.language.team,
}),
gulp.dest(config.language.destination + config.language.domain + '.pot'),
], cb);
});
gulp.task('pot-to-po', cb => {
pump([
gulp.src(config.language.destination + '*.pot'),
pottopo(),
gulp.dest(config.language.destination),
], cb);
});
gulp.task('default', gulp.series('pot', 'pot-to-po', 'po-to-mo'));