PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 5.3.1
Defender Security – Malware Scanner, Login Security & Firewall v5.3.1
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / extra / shared-tasks / wpmudev_release.js

wpmudev_release.js in Defender Security – Malware Scanner, Login Security & Firewall 5.3.1, at extra/shared-tasks/wpmudev_release.js

123 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 module.exports = function (grunt, loader) {
2 'use strict';
3
4 grunt.registerTask('wpmudev_release', function () {
5 var wpmudev = grunt.config.get('wpmudev_release') || {},
6 version = wpmudev.version || false,
7 version_define = wpmudev.version_define || false,
8 type = wpmudev.type || false,
9 tasks = wpmudev.build || [],
10 error = ''
11 ;
12
13 if (!version && !type) {
14 grunt.fail.fatal("This task needs at the very least one argument (type), ideally two (version and type).");
15 return false;
16 }
17
18 if (version) {
19 grunt.log.subhead("Attempting to update version number to " + version);
20
21 grunt.log.writeln("Checking changelog");
22 if (grunt.file.exists("changelog.txt")) {
23 var changelog = grunt.file.read("changelog.txt");
24 if (!changelog.match(new RegExp('^\\s*' + version + '\\s+', 'm'))) {
25 grunt.log.warn("Changelog doesn't know about the current version!".red.bold);
26 error = ':error';
27 } else {
28 grunt.log.writeln("Changelog seems OK");
29 }
30 } else {
31 grunt.log.error("Couldn't find changelog.txt!");
32 return false;
33 }
34
35 grunt.log.writeln("Updating version info in package.json");
36 var pkg = grunt.file.readJSON('package.json');
37 pkg.version = version;
38 grunt.config.set("pkg", pkg);
39 grunt.file.write('package.json', JSON.stringify(pkg, null, 2));
40
41 grunt.log.writeln("Updating version info in main plugin file");
42 if (grunt.file.exists((pkg.main || pkg.name) + ".php")) {
43 var plugin = grunt.file.read((pkg.main || pkg.name) + '.php');
44
45 grunt.log.writeln("\t* Updating version info in plugin header");
46 plugin = plugin.replace(/^(\s?\* )?Version:.*$/m, '$1Version: ' + version);
47
48 if (version_define) {
49 var vdrx = new RegExp("'" + version_define + "',\\s['\"].*?['\"]");
50 grunt.log.writeln("\t* Updating version info in version define");
51 plugin = plugin.replace(vdrx, "'" + version_define + "', '" + version + "'");
52 }
53
54 grunt.log.writeln("Done updating info in main plugin file, writing changes");
55 grunt.file.write((pkg.main || pkg.name) + '.php', plugin);
56 } else {
57 grunt.log.warn("Could not find main plugin file".yellow.bold);
58 }
59 }
60
61 tasks.unshift('wpmudev_makepot'); // Preparing for l10n is always a part of the release
62 tasks.push('wpmudev_postrelease' + error);
63 grunt.task.run(tasks);
64 });
65
66
67
68 grunt.registerTask('wpmudev_postrelease', function (error) {
69 var done = this.async(),
70 wpmudev = grunt.config.get('wpmudev_release') || {},
71 type = wpmudev.type || 'full',
72 tasks = wpmudev.clean || []
73 ;
74
75 if (tasks && tasks.length) grunt.task.run(tasks);
76
77 var pkg = grunt.config.get('pkg'),
78 version = (pkg || {}).version,
79 name = (pkg || {}).name,
80 out = function (cmderr, result) {
81 if (cmderr) {
82 grunt.log.error("Encountered an error with post-release git work:", result);
83 } else {
84 grunt.log.writeln("Post-release git work (commit+tag) successful *locally*, remember to git push --tags".white.bold);
85 }
86
87 grunt.log.subhead('Prepared a release package for ' + version);
88 grunt.log.writeln('The releasable archive is in builds/' + name + '-' + version + ('full' !== type ? '-free' : '') + '.zip');
89 if ('full' === type) {
90 var msg = 'Upload the archive to https://wpmudev.com/wp-admin/edit.php?post_type=project&page=projects-manage&manage_files=';
91 msg += loader.environment.get_wdp_id();
92 grunt.log.ok(msg.green.bold);
93 }
94
95 if (error) {
96 grunt.log.error("Apparently, we also encountered some errors along the way. Please, inspect the output to see what's up.".red.bold);
97 }
98 done();
99 }
100 ;
101
102 // Commit all the stuff that's left hanging out and add version tag
103 if (!error) {
104 grunt.util.spawn({
105 cmd: 'git',
106 args: ['commit', '-am', 'Prepared v' + version + ' release']
107 }, function (cmderr, result) {
108 if (cmderr) {
109 grunt.log.error("Encountered an error committing changes", result);
110 return out(true);
111 }
112 grunt.util.spawn({
113 cmd: 'git',
114 args: ['tag', version]
115 }, out);
116 });
117 } else {
118 error = true;
119 out(true, "Please, make sure your changelog is prepared");
120 }
121 });
122 };
123