﻿BIN = ./node_modules/.bin
.PHONY: test clean

test:
    @npm test

define release
    VERSION=`node -pe "require('./package.json').version"` && \
    NEXT_VERSION=`node -pe "require('semver').inc(\"$$VERSION\", '$(1)')"` && \
    node -e "\
        var j = require('./package.json');\
        j.version = \"$$NEXT_VERSION\";\
        var s = JSON.stringify(j, null, 2);\
        require('fs').writeFileSync('./package.json', s);" && \
    git commit -m "Version $$NEXT_VERSION" -- package.json && \
    git tag "$$NEXT_VERSION" -m "Version $$NEXT_VERSION"
endef

release-patch: test
    @$(call release,patch)

release-minor: test
    @$(call release,minor)

release-major: test
    @$(call release,major)

publish:
    git push
    git push --tags origin HEAD:master
    npm publish