|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #!/usr/bin/env ruby
-
- require 'json'
-
- def puts_c(color, str)
- puts "\x1b[#{color}m#{str}\x1b[0m"
- end
-
- # for tracking if bump was needed
- $bumped = false
- def did_bump
- if !$bumped
- puts "bump detected!"
- if `which uglifyjs`.empty?
- puts_c 31, "you need uglifyjs installed"
- puts "run `sudo npm install -g uglify-js`"
- exit 1
- end
- end
- $bumped = true
- end
-
-
-
- # get package.json version
- pckg_path = 'package.json'
- package = JSON.parse File.read pckg_path
- v = package['version']
-
-
-
- # check/bump version in `mustache.js` file
-
- mjs_path = 'mustache.js'
- mjs = File.read mjs_path
- mjs_re = /mustache.version = "([\d\.]*)"/
-
- if match = mjs.match(mjs_re)
- mjs_v = match.captures[0]
- if v != mjs_v then
- did_bump
- puts "> bumping version in file 'mustache.js': #{mjs_v} -> #{v}..."
- mjs.gsub! mjs_re, "mustache.version = \"#{v}\""
- File.open(mjs_path, 'w') {|f| f.write(mjs) }
- end
- else
- puts_c 31, "ERROR: Can't find 'mustache.version = \"x.x.x\"' in mustache.js"
- exit 1
- end
-
-
-
- # check/bump version in `mustache.js.nuspec` file
-
- nspc_path = 'mustache.js.nuspec'
- nspc = File.read nspc_path
- nspc_re = /<version>([\d\.]*)<\/version>/
- if match = nspc.match(nspc_re)
- nspc_v = match.captures[0]
- if v != nspc_v then
- did_bump
- puts "> bumping version in file 'mustache.js.nuspec': #{nspc_v} -> #{v}..."
- nspc.gsub! nspc_re, "<version>#{v}</version>"
- File.open(nspc_path, 'w') {|f| f.write(nspc) }
- end
- else
- puts_c 31, "ERROR: Can't find '<version>x.x.x</version>' in mustache.js.nuspec"
- exit 1
- end
-
-
- # check/bump version in `bower.json` file
-
- bwr_path = 'bower.json'
- bwr = File.read bwr_path
- bwr_re = /"version": "([\d\.]*)"/
-
- if match = bwr.match(bwr_re)
- bwr_v = match.captures[0]
- if v != bwr_v
- did_bump
- puts "> bumping version in file 'bower.json': #{bwr_v} -> #{v}..."
- bwr.gsub! bwr_re, "\"version\": \"#{v}\""
- File.open(bwr_path, 'w') {|f| f.write(bwr) }
- end
- else
- puts_c 31, "ERROR: Can't find '\"version\": \"x.x.x\"' in 'bower.json'"
- exit 1
- end
-
-
-
- # if bumped, do extra stuff and notify the user
-
- if $bumped
-
- # minify `mustache.js` using the Rakefile task
- puts "> minifying `mustache.js`..."
- `rake minify`
-
- # stage files for commit
- `git add #{pckg_path}`
- `git add #{mjs_path}`
- `git add #{nspc_path}`
- `git add #{bwr_path}`
- `git add mustache.min.js`
- `git commit -m "bump to version #{v}"`
-
- # notify codemonkey
- puts "staged bumped files and created commit"
- puts_c 32, "successfully bumped version to #{v}!"
- puts_c 33, "don't forget to `npm publish` and `spm publish`!"
- exit 1
-
- end
- exit 0
|