From dc6bae6aae7b70487d38536d3c1714f56205cd3c Mon Sep 17 00:00:00 2001 From: Dumitru Uzun Date: Thu, 30 Apr 2015 17:58:30 +0300 Subject: [PATCH 1/2] Updated verup to v1.2.0 and moved its config to package.json --- build/verup.js | 54 ++++++++++++++++++++++++++++++++++++-------------- package.json | 13 ++++++++++++ 2 files changed, 52 insertions(+), 15 deletions(-) diff --git a/build/verup.js b/build/verup.js index a2cd149..eab2010 100644 --- a/build/verup.js +++ b/build/verup.js @@ -15,27 +15,20 @@ * * * @author Dumitru Uzun (DUzun.Me) - * @version 1.1.0 + * @version 1.2.0 */ var path = require('path'); var fs = require('fs'); -var _root = path.join(__dirname, '..'); -var files = [ - 'ua-parser-js.jquery.json', - 'component.json', - 'bower.json', - 'package.js', - 'src/ua-parser.js' -]; +var packFile = findPackage(__dirname); -var ver_reg = [ - /^((?:\$|@|(\s*(?:var|,)?\s+))(?:LIBVERSION|version)[\s\:='"]+)([0-9]+(?:\.[0-9]+){2,2})/ - , /^(\s?\*.*v)([0-9]+(?:\.[0-9]+){2,2})/ -]; +if ( !packFile ) { + console.log('package.json file not found'); + process.exist(1); +} -var packFile = path.join(_root, 'package.json'); +var _root = path.dirname(packFile); var packo = require(packFile); if ( !packo ) { @@ -43,6 +36,24 @@ if ( !packo ) { process.exit(1); } +var _verup = packo.verup; + +if ( !_verup ) { + console.log('package.json doesn\'t have a `verup` property defined'); + process.exist(1); +} + +var files = _verup.files; + +var ver_reg = [ + /^((?:\$|@|(\s*(?:var|,)?\s+))version[\s\:='"]+)([0-9]+(?:\.[0-9]+){2,2})/ + , /^(\s?\*.*v)([0-9]+(?:\.[0-9]+){2,2})/ +]; + +if ( _verup.regs ) { + ver_reg = _verup.regs.map(function (r) { return new RegExp(r); }); +} + var over = packo.version; /* @@ -56,7 +67,7 @@ if ( over ) { while(bump.length && !(b = parseInt(bump.pop()))); l = bump.length; -// console.log({b:b,nver:nver,over:over,l:l,bump:bump}) + // console.log({b:b,nver:nver,over:over,l:l,bump:bump}) nver[l] = +nver[l] + b; bump.forEach(function (v,i) { nver[i] = v; }); @@ -110,3 +121,16 @@ if ( over ) { }); } + + +/// Find package.json file in closest folder from `dir` and up. +function findPackage(dir) { + var d = dir || '.', f; + do { + f = path.join(d, 'package.json'); + if ( fs.existsSync(f) ) return f; + dir = d; + d = path.join(d, '..'); + } while (d != dir && dir.slice(0,2) != '..'); + return false; +} diff --git a/package.json b/package.json index b18aa23..1908bd0 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,19 @@ "test": "./build/build.sh", "verup": "node ./build/verup.js" }, + "verup": { + "files": [ + "ua-parser-js.jquery.json", + "component.json", + "bower.json", + "package.js", + "src/ua-parser.js" + ], + "regs": [ + "^((?:\\$|@|(\\s*(?:var|,)?\\s+))(?:LIBVERSION|version)[\\s\\:='\"]+)([0-9]+(?:\\.[0-9]+){2,2})", + "^(\\s?\\*.*v)([0-9]+(?:\\.[0-9]+){2,2})" + ] + }, "devDependencies": { "jshint": "~1.1.0", "mocha": "~1.8.0", From 56c90d213458683354e64e0b54919d7f91135fb8 Mon Sep 17 00:00:00 2001 From: Dumitru Uzun Date: Tue, 5 May 2015 20:39:23 +0300 Subject: [PATCH 2/2] updated verup script --- build/verup.js | 70 ++++++++++++++++++++++++++++++++++++++------------ package.json | 2 +- 2 files changed, 55 insertions(+), 17 deletions(-) diff --git a/build/verup.js b/build/verup.js index eab2010..151f6b9 100644 --- a/build/verup.js +++ b/build/verup.js @@ -15,13 +15,43 @@ * * * @author Dumitru Uzun (DUzun.Me) - * @version 1.2.0 + * @version 1.3.0 */ var path = require('path'); var fs = require('fs'); -var packFile = findPackage(__dirname); +var ver_reg = [ + /^((?:\$|(\s*\*\s*@)|(\s*(?:var|,)?\s+))version[\s\:='"]+)([0-9]+(?:\.[0-9]+){2,2})/ + , /^(\s?\*.*v)([0-9]+(?:\.[0-9]+){2,2})/ +]; + +/// bump should be 1 for revision, 1.0 for minor and 1.0.0 for major version +var bump = '1'; // bump by + +/// Project name to bump (search it's package.json folder) +var name = ''; + +var _a = 'b'; +process.argv.forEach(function (v, i) { + if ( i < 2 ) return; + if ( v.slice(0,1) == '-' && isNaN(parseFloat(v)) ) { + _a = v.slice(1); + } + else { + switch(_a) { + case 'b': { + bump = v; + } break; + case 'n': { + name = v; + } break; + } + _a = 'b'; + } +}); + +var packFile = findPackage(__dirname, name); if ( !packFile ) { console.log('package.json file not found'); @@ -45,23 +75,14 @@ if ( !_verup ) { var files = _verup.files; -var ver_reg = [ - /^((?:\$|@|(\s*(?:var|,)?\s+))version[\s\:='"]+)([0-9]+(?:\.[0-9]+){2,2})/ - , /^(\s?\*.*v)([0-9]+(?:\.[0-9]+){2,2})/ -]; - if ( _verup.regs ) { ver_reg = _verup.regs.map(function (r) { return new RegExp(r); }); } var over = packo.version; - -/* - * bump should be 1 for revision, 1.0 for minor and 1.0.0 for major version - */ -var bump = (process.argv[2] || '1').split('.').reverse(); - if ( over ) { + bump = bump.split('.').reverse(); + var nver = over.split('.').reverse(); var b, l; while(bump.length && !(b = parseInt(bump.pop()))); @@ -115,7 +136,7 @@ if ( over ) { } } if ( buf && buf != cnt ) { - console.log("\t" + fn.replace(_root, '')); + console.log("\t" + fn.replace(_root, '').replace(/^[\\/]+/, '')); fs.writeFileSync(fn, buf); } }); @@ -124,11 +145,28 @@ if ( over ) { /// Find package.json file in closest folder from `dir` and up. -function findPackage(dir) { +function findPackage(dir, packageName) { var d = dir || '.', f; do { f = path.join(d, 'package.json'); - if ( fs.existsSync(f) ) return f; + if ( fs.existsSync(f) ) { + + var p = require(f); + // Look for a specific project name + if ( packageName ) { + if ( p ) { + if ( p.name == packageName ) { + return f; + } + } + } + // Look for any project except this one (verup) + else { + if ( !p || p.name != 'verup' ) { + return f; + } + } + } dir = d; d = path.join(d, '..'); } while (d != dir && dir.slice(0,2) != '..'); diff --git a/package.json b/package.json index 1908bd0..14b4506 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "src/ua-parser.js" ], "regs": [ - "^((?:\\$|@|(\\s*(?:var|,)?\\s+))(?:LIBVERSION|version)[\\s\\:='\"]+)([0-9]+(?:\\.[0-9]+){2,2})", + "^((?:\\$|(\\s*\\*\\s*@)|(\\s*(?:var|,)?\\s+))(?:LIBVERSION|version)[\\s\\:='\"]+)([0-9]+(?:\\.[0-9]+){2,2})", "^(\\s?\\*.*v)([0-9]+(?:\\.[0-9]+){2,2})" ] },