define grunt task to change version numbers in projects files
authorymh <ymh.work@gmail.com>
Thu, 10 Sep 2015 00:35:59 +0200
changeset 500 fb3a062bc720
parent 499 7d374d366b28
child 501 a509adc8ac10
define grunt task to change version numbers in projects files
client/gruntfile.js
client/package.json
--- a/client/gruntfile.js	Wed Sep 09 18:37:15 2015 +0200
+++ b/client/gruntfile.js	Thu Sep 10 00:35:59 2015 +0200
@@ -251,7 +251,48 @@
                     }
                 }
             }
-        }
+        },
+        replace: {
+            'version-bower-package': {
+                src: ['package.json', 'bower.json'],
+                overwrite: true,
+                replacements: [{
+                    from: /^(\s+)\"version\"\:\s*\"([\d\.]+)\"\,[ \t]*$/m,
+                    to: "$1\"version\"\: \"<%= setversion.version %>\",",
+                }]
+            },
+            'version-gradle': {
+                src: ['../server/java/build.gradle'],
+                overwrite: true,
+                replacements: [{
+                    from: /^(\s+)version\s*\=\s*\'([\d\.]+)\'[ \t]*$/m,
+                    to: "$1version = \'<%= setversion.version %>\'",
+                }]
+            },
+            'version-maven': {
+                src: ['../server/java/pom.xml'],
+                overwrite: true,
+                replacements: [{
+                    from: /^(\s+)<version>\s*([\d\.]+)\s*<\/version>[ \t]*$/m,
+                    to: "$1<version><%= setversion.version %></version>",
+                }]
+            },
+            'version-django': {
+                src: ['../server/python/django/renkanmanager/__init__.py'],
+                overwrite: true,
+                replacements: [{
+                    from: /^(\s*)VERSION\s*=\s*\([ \t]*\d+[ \t]*,[ \t]*\d+[ \t]*,[ \t]*\d+[ \t]*,[ \t]*\"final\"[ \t]*\,[ \t]*0[ \t]*\)[ \t]*$/m,
+                    to: function(matchedWord, index, fullText, regexMatches) {
+                        var array_version = grunt.config.get('setversion.version').split('.');
+                        var array_version_length = array_version.length;
+                        for(let i=0;i<3-array_version_length;i++) {
+                            array_version.push('0');
+                        }
+                        return regexMatches[0]+"VERSION = (" + array_version.join(', ') + ", \"final\", 0)";
+                    },
+                }]
+            },
+        },
     });
 
     // Load the plugins.
@@ -267,6 +308,7 @@
     grunt.loadNpmTasks('grunt-contrib-jst');
     grunt.loadNpmTasks('grunt-contrib-watch');
     grunt.loadNpmTasks('grunt-umd');
+    grunt.loadNpmTasks('grunt-text-replace');
 
     // Default task(s).
     grunt.registerTask('base', [
@@ -290,6 +332,10 @@
         grunt.task.run(['copy:renkan_server']);
     });
     grunt.registerTask('dev', ['base', 'connect:server', 'watch']);
+    grunt.registerTask('set-version', function(version) {
+        grunt.config.set('setversion.version', version);
+        grunt.task.run(['replace:version-bower-package', 'replace:version-gradle', 'replace:version-maven', 'replace:version-django']);
+    });
 
 
 };
--- a/client/package.json	Wed Sep 09 18:37:15 2015 +0200
+++ b/client/package.json	Thu Sep 10 00:35:59 2015 +0200
@@ -21,6 +21,7 @@
     "grunt-contrib-requirejs": "^0.4.4",
     "grunt-contrib-uglify": "^0.4.0",
     "grunt-contrib-watch": "^0.6.1",
+    "grunt-text-replace": "^0.4.0",
     "grunt-umd": "^2.3.3",
     "jshint-stylish": "^0.2.0"
   },