46 lines
1.6 KiB
CoffeeScript
46 lines
1.6 KiB
CoffeeScript
fs = require 'fs'
|
|
dateFormat = require 'dateformat'
|
|
|
|
pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'))
|
|
v = JSON.parse(fs.readFileSync('version.json', 'utf8'))
|
|
level = +process.argv[2]
|
|
|
|
parts = v.version.split '.'
|
|
parts[i] or= '0' for i in [0...level]
|
|
parts[level-1] = +parts[level-1] + 1
|
|
parts[i] = 0 for i in [level...parts.length]
|
|
version = parts.join '.'
|
|
|
|
oldversion = v.version
|
|
v.version = version
|
|
v.date = new Date()
|
|
fs.writeFileSync 'version.json', JSON.stringify(v, null, 2) + '\n'
|
|
console.log "Version updated from v#{oldversion} to v#{version}."
|
|
|
|
{meta, name} = pkg
|
|
{oldVersions} = meta
|
|
|
|
branch = version.replace /\.\d+$/, ''
|
|
headerLevel = branch.replace(/(\.0)*$/, '').split('.').length
|
|
headerPrefix = new Array(headerLevel + 1).join '#'
|
|
separator = "#{headerPrefix} v#{branch}"
|
|
|
|
today = dateFormat v.date, 'yyyy-mm-dd'
|
|
filename = "/builds/#{name}-noupdate"
|
|
ffLink = "#{oldVersions}#{version}#{filename}.user.js"
|
|
crLink = "#{oldVersions}#{version}#{filename}.crx"
|
|
line = "**v#{version}** *(#{today})* - [[Firefox](#{ffLink} \"Firefox version\")] [[Chromium](#{crLink} \"Chromium version\")]"
|
|
|
|
changelog = fs.readFileSync 'CHANGELOG.md', 'utf8'
|
|
|
|
breakPos = changelog.indexOf(separator)
|
|
throw new Error 'Separator not found.' if breakPos is -1
|
|
breakPos += separator.length
|
|
|
|
prevVersion = changelog[breakPos..].match(/\*\*v([\d\.]+)\*\*/)[1]
|
|
unless prevVersion.replace(/\.\d+$/, '') is branch
|
|
line += "\n- Based on v#{prevVersion}."
|
|
|
|
fs.writeFileSync 'CHANGELOG.md', "#{changelog[...breakPos]}\n\n#{line}#{changelog[breakPos..]}"
|
|
console.log "Changelog updated for v#{version}."
|