Repository: cordova-coho Updated Branches: refs/heads/master 735e2bb8b -> 7ce604143
CB-9157 adds copy-js command to copy an updated cordova.js to the specified platform This closes #141 Project: http://git-wip-us.apache.org/repos/asf/cordova-coho/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-coho/commit/7ce60414 Tree: http://git-wip-us.apache.org/repos/asf/cordova-coho/tree/7ce60414 Diff: http://git-wip-us.apache.org/repos/asf/cordova-coho/diff/7ce60414 Branch: refs/heads/master Commit: 7ce6041438691a1cd74b072c8c5564ebd389a98b Parents: 735e2bb Author: audreyso <[email protected]> Authored: Mon Oct 3 09:25:19 2016 -0700 Committer: Steve Gill <[email protected]> Committed: Tue Oct 4 14:22:23 2016 -0700 ---------------------------------------------------------------------- src/main.js | 4 ++ src/platform-release.js | 92 ++++++++++++++++++++++++++++++-------------- 2 files changed, 67 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-coho/blob/7ce60414/src/main.js ---------------------------------------------------------------------- diff --git a/src/main.js b/src/main.js index a599ef0..7cdd3f4 100644 --- a/src/main.js +++ b/src/main.js @@ -154,6 +154,10 @@ module.exports = function() { name: 'npm-link', desc: 'Does an "npm link" of dependent modules that we own.', entryPoint: lazyRequire('./npm-link') + }, { + name: 'copy-js', + desc: 'Generates and copies cordova.js to platform.', + entryPoint: lazyRequire('./platform-release.js', 'createAndCopyCordovaJSCommand') } ]; var commandMap = {}; http://git-wip-us.apache.org/repos/asf/cordova-coho/blob/7ce60414/src/platform-release.js ---------------------------------------------------------------------- diff --git a/src/platform-release.js b/src/platform-release.js index 8d40acc..e9cff9c 100644 --- a/src/platform-release.js +++ b/src/platform-release.js @@ -59,6 +59,36 @@ function cpAndLog(src, dest) { } } +/* + * A function that handles version if it is defined or undefined + * + * @param {String} repo current repo + * @param {String|undefined} ver current version that can be defined or undefined + * @param {String|undefined} validate current version that can be defined or undefined + * + * @return {String} version Returns the calculated version + * + */ + +function *handleVersion(repo,ver,validate) { + var platform = repo.id; + var version = ver || undefined; + + if (version === undefined) { + yield repoutil.forEachRepo([repo], function*() { + // Grabbing version from platformPackageJson + var platformPackage = path.join(process.cwd(), 'package.json'); + var platformPackageJson = require(platformPackage); + if(validate === true) { + version = flagutil.validateVersionString(platformPackageJson.version); + } else { + version = platformPackageJson.version; + } + }); + } + return version; +} + function configureReleaseCommandFlags(opt) { var opt = flagutil.registerRepoFlag(opt) opt = opt @@ -105,7 +135,7 @@ function *updateCDVAvailabilityFile(version) { fs.writeFileSync(iosFile, iosFileContents.join('\n')); } -function *updateJsSnapshot(repo, version) { +function *updateJsSnapshot(repo, version, commit) { function *ensureJsIsBuilt() { var cordovaJsRepo = repoutil.getRepoById('js'); if (repo.id === 'blackberry') { @@ -134,14 +164,32 @@ function *updateJsSnapshot(repo, version) { var src = path.join('..', 'cordova-js', 'pkg', repo.cordovaJsSrcName || ('cordova.' + repo.id + '.js')); cpAndLog(src, jsPath); }); - if (yield gitutil.pendingChangesExist()) { - yield executil.execHelper(executil.ARGS('git commit -am', 'Update JS snapshot to version ' + version + ' (via coho)')); - } + if(commit === true) { + if (yield gitutil.pendingChangesExist()) { + yield executil.execHelper(executil.ARGS('git commit -am', 'Update JS snapshot to version ' + version + ' (via coho)')); + } + } } else if (repoutil.repoGroups.all.indexOf(repo) != -1) { print('*** DO NOT KNOW HOW TO UPDATE cordova.js FOR THIS REPO ***'); } } +exports.createAndCopyCordovaJSCommand = function*() { + var argv = configureReleaseCommandFlags(optimist + .usage('Generates and copies an updated cordova.js to the specified platform. It does the following:\n' + + ' 1. Generates a new cordova.js.\n' + + ' 2. Replaces platform\'s cordova.js file.\n' + + '\n' + + 'Usage: $0 copy-js -r platform') + ); + + var repos = flagutil.computeReposFromFlag(argv.r); + yield repoutil.forEachRepo(repos, function*(repo) { + var version = yield handleVersion(repo, argv.version, false); + yield updateJsSnapshot(repo,version, false); + }); +} + exports.prepareReleaseBranchCommand = function*() { var argv = configureReleaseCommandFlags(optimist .usage('Prepares release branches but does not create tags. This includes:\n' + @@ -154,39 +202,27 @@ exports.prepareReleaseBranchCommand = function*() { 'Command can also be used to update the JS snapshot after release \n' + 'branches have been created.\n' + '\n' + - 'Usage: $0 prepare-release-branch --version=3.6.0 -r platform') + 'Usage: $0 prepare-release-branch -r platform [--version=3.6.0]') ); - - var repos = flagutil.computeReposFromFlag(argv.r); + var repos = flagutil.computeReposFromFlag(argv.r); var branchName = null; - + // First - perform precondition checks. yield repoupdate.updateRepos(repos, [], true); yield repoutil.forEachRepo(repos, function*(repo) { var platform = repo.id; - - var version = null; - - if (argv.version === undefined) { - // Grabbing version from platformPackageJson - var platformPackage = path.join(process.cwd(), 'package.json'); - var platformPackageJson = require(platformPackage); - var version = flagutil.validateVersionString(platformPackageJson.version); - } else { - var version = flagutil.validateVersionString(argv.version); - } - - branchName = getVersionBranchName(version); + var version = yield handleVersion(repo, argv.version,true); + var branchName = getVersionBranchName(version); yield gitutil.stashAndPop(repo, function*() { // git fetch + update master yield repoupdate.updateRepos([repo], ['master'], false); if (platform === 'ios') { - //Updates version in CDVAvailability.h file + // Updates version in CDVAvailability.h file yield updateCDVAvailabilityFile(version); - //Git commit changes + // Git commit changes if(yield gitutil.pendingChangesExist()) { yield executil.execHelper(executil.ARGS('git commit -am', 'Added ' + version + ' to CDVAvailability.h (via coho).')); } @@ -204,15 +240,15 @@ exports.prepareReleaseBranchCommand = function*() { yield executil.execHelper(executil.ARGS('git checkout -b ' + branchName)); } - yield updateJsSnapshot(repo, version); - print(repo.repoName + ': ' + 'Setting VERSION to "' + version + '" on branch + "' + branchName + '".'); + yield updateJsSnapshot(repo, version, true); + print(repo.repoName + ': Setting VERSION to "' + version + '" on branch "' + branchName + '".'); yield versionutil.updateRepoVersion(repo, version); yield gitutil.gitCheckout('master'); var devVersion = createPlatformDevVersion(version); - print(repo.repoName + ': ' + 'Setting VERSION to "' + devVersion + '" on branch + "master".'); + print(repo.repoName + ': Setting VERSION to "' + devVersion + '" on branch "master".'); yield versionutil.updateRepoVersion(repo, devVersion); - yield updateJsSnapshot(repo, devVersion); + yield updateJsSnapshot(repo, devVersion, true); yield gitutil.gitCheckout(branchName); }); }); @@ -228,7 +264,6 @@ function *tagJs(repo, version, pretend) { yield executil.execHelper(cmd); } } - //tag cordova.js platform-version var cordovaJsRepo = repoutil.getRepoById('js'); yield repoutil.forEachRepo([cordovaJsRepo], function*() { @@ -247,7 +282,6 @@ function *tagJs(repo, version, pretend) { }); } - exports.tagReleaseBranchCommand = function*(argv) { var argv = configureReleaseCommandFlags(optimist .usage('Tags a release branches.\n' + --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
