autocode
Version:
spec-driven code generator
38 lines (28 loc) • 955 B
text/coffeescript
module.exports = (opts) ->
console.log 'Versioning project...'
cson = require 'season'
fs = require 'fs'
semver = require 'semver'
yaml = require 'js-yaml'
config = this.config('.')
current_version = config.version
version = opts._[1]
config.version = semver.valid version
if !config.version
if ['major','minor','patch'].indexOf(version) == -1
throw new Error "Invalid version: #{version}"
config.version = semver.inc current_version, version
ext = config.ext
file = config.file
delete config.ext
delete config.file
switch ext
when 'yml','yaml' then fs.writeFileSync file, yaml.safeDump(config)
when 'cson' then cson.writeFileSync file, config
when 'json' then fs.writeFileSync file, JSON.stringify(config)
when 'xml' then fs.writeFileSync file, xml.stringify(config)
console.log "#{config.name} now at version #{config.version}."