Skip to content

Commit f85ecb1

Browse files
timmywiljzaefferer
authored andcommitted
Repo: Update bower.json along with package.json when updating versions
Fixes gh-4 Closes jquerygh-18
1 parent b4106f1 commit f85ecb1

File tree

1 file changed

+49
-20
lines changed

1 file changed

+49
-20
lines changed

lib/repo.js

Lines changed: 49 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ var fs = require( "fs" );
33
module.exports = function( Release ) {
44

55
Release.define({
6+
_jsonFiles: [ "package.json", "bower.json" ],
67
_cloneRepo: function() {
78
console.log( "Cloning " + Release.remote.cyan + "..." );
89
Release.git( "clone " + Release.remote + " " + Release.dir.repo, "Error cloning repo." );
@@ -68,15 +69,39 @@ Release.define({
6869

6970
checkRepoState: function() {},
7071

72+
_readJSON: function( fileName ) {
73+
var json = fs.readFileSync( Release.dir.repo + "/" + fileName, "utf8" );
74+
Release.packageIndentation = json.match( /\n([\t\s]+)/ )[ 1 ];
75+
return JSON.parse( json );
76+
},
77+
78+
_writeJSON: function( fileName, json ) {
79+
fs.writeFileSync( Release.dir.repo + "/" + fileName,
80+
JSON.stringify( json, null, Release.packageIndentation ) + "\n" );
81+
},
82+
7183
readPackage: function() {
72-
var package = fs.readFileSync( Release.dir.repo + "/package.json", "utf8" );
73-
Release.packageIndentation = package.match( /\n([\t\s]+)/ )[ 1 ];
74-
return JSON.parse( package );
84+
return Release._readJSON( "package.json" );
85+
},
86+
87+
writePackage: function( json ) {
88+
Release._writeJSON( "package.json", json );
89+
},
90+
91+
_versionJSON: function( fileName, version ) {
92+
if ( !fs.existsSync( Release.dir.repo + "/" + fileName ) ) {
93+
return;
94+
}
95+
console.log( "Updating " + fileName + "..." );
96+
var json = Release._readJSON( fileName );
97+
json.version = version;
98+
Release._writeJSON( fileName, json );
7599
},
76100

77-
writePackage: function( package ) {
78-
fs.writeFileSync( Release.dir.repo + "/package.json",
79-
JSON.stringify( package, null, Release.packageIndentation ) + "\n" );
101+
_setVersion: function( version ) {
102+
Release._jsonFiles.forEach(function( file ) {
103+
Release._versionJSON( file, version );
104+
});
80105
},
81106

82107
_getVersions: function() {
@@ -122,28 +147,36 @@ Release.define({
122147
},
123148

124149
_createReleaseBranch: function() {
125-
var package;
150+
var json;
126151

127152
console.log( "Creating " + "release".cyan + " branch..." );
128153
Release.git( "checkout -b release", "Error creating release branch." );
129154
console.log();
130155

131-
console.log( "Updating package.json..." );
132-
package = Release.readPackage();
133-
package.version = Release.newVersion;
134-
package.author.url = package.author.url.replace( "master", Release.newVersion );
135-
package.licenses.forEach(function( license ) {
156+
Release._setVersion( Release.newVersion );
157+
158+
// Update package.json URLs
159+
console.log( "Updating package.json URLs..." );
160+
json = Release.readPackage();
161+
json.author.url = json.author.url.replace( "master", Release.newVersion );
162+
json.licenses.forEach(function( license ) {
136163
license.url = license.url.replace( "master", Release.newVersion );
137164
});
138-
Release.writePackage( package );
165+
Release.writePackage( json );
139166

140167
Release.generateArtifacts( Release._createTag );
141168
},
142169

143170
_createTag: function( paths ) {
171+
var jsonFiles = [];
172+
Release._jsonFiles.forEach(function( name ) {
173+
if ( fs.existsSync( name ) ) {
174+
jsonFiles.push( name );
175+
}
176+
});
144177

145178
// Ensure that at least one file is in the array so that `git add` won't error
146-
paths = paths.concat( "package.json" );
179+
paths = paths.concat( jsonFiles );
147180

148181
console.log( "Committing release artifacts..." );
149182
Release.git( "add -f " + paths.join( " " ), "Error adding release artifacts to git." );
@@ -167,16 +200,12 @@ Release.define({
167200
},
168201

169202
_updateBranchVersion: function() {
170-
var package;
171-
172203
console.log( "Checking out " + Release.branch.cyan + " branch..." );
173204
Release.git( "checkout " + Release.branch,
174205
"Error checking out " + Release.branch + " branch." );
175206

176-
console.log( "Updating package.json..." );
177-
package = Release.readPackage();
178-
package.version = Release.nextVersion;
179-
Release.writePackage( package );
207+
// Update all JSON versions
208+
Release._setVersion( Release.nextVersion );
180209

181210
console.log( "Committing version update..." );
182211
Release.git( "commit -am 'Updating the " + Release.branch +

0 commit comments

Comments
 (0)