1
1
var fs = require ( 'fs' ) ,
2
- path = require ( 'path' )
2
+ path = require ( 'path' ) ,
3
+ semver = require ( 'semver' )
3
4
4
5
module . exports = function ( grunt ) {
5
6
@@ -78,6 +79,13 @@ module.exports = function( grunt ) {
78
79
grunt . loadNpmTasks ( 'grunt-mocha' )
79
80
80
81
grunt . registerTask ( 'version' , function ( version ) {
82
+ if ( ! version || ! semver . valid ( version ) ) {
83
+ return grunt . fail . warn ( 'Invalid semver version.' )
84
+ }
85
+ var current = require ( './package.json' ) . version
86
+ if ( semver . lt ( version , current ) ) {
87
+ return grunt . fail . warn ( 'Version is older than current.' )
88
+ }
81
89
; [ 'package' , 'bower' , 'component' ] . forEach ( function ( file ) {
82
90
file = './' + file + '.json'
83
91
var json = fs . readFileSync ( file , 'utf-8' )
@@ -87,26 +95,7 @@ module.exports = function( grunt ) {
87
95
} )
88
96
89
97
grunt . registerTask ( 'release' , function ( version ) {
90
- if ( ! version || ! isValid ( version ) ) {
91
- return grunt . fail . warn ( 'Must provide a valid semver version number.' )
92
- }
93
- grunt . task . run ( [ 'version:' + version , 'default' ] )
94
-
95
- function isValid ( v ) {
96
- var nums = v . split ( '.' )
97
- if ( nums . length !== 3 ) return false
98
- var current = require ( './package.json' ) . version . split ( '.' ) ,
99
- a1 = + nums [ 0 ] ,
100
- b1 = + nums [ 1 ] ,
101
- c1 = + nums [ 2 ] ,
102
- a2 = + current [ 0 ] ,
103
- b2 = + current [ 1 ] ,
104
- c2 = + current [ 2 ]
105
- if ( a1 < a2 ) return false
106
- if ( a1 === a2 && b1 < b2 ) return false
107
- if ( a1 === a2 && b1 === b2 && c1 < c2 ) return false
108
- return true
109
- }
98
+ grunt . task . run ( [ 'default' , 'version:' + version ] )
110
99
} )
111
100
112
101
grunt . registerTask ( 'casper' , function ( id ) {
0 commit comments