text: var shell = require('shelljs')
  
  if (exec('git status --porcelain').output) {
    console.error('Git working directory not clean. Please commit all chances to release a new package to npm.')
    process.exit(2)
  }
  
  var versionIncrement = process.argv[process.argv.length - 1]
  var versionIncrements = ['major', 'minor', 'patch']
  
  if (versionIncrements.indexOf(versionIncrement) < 0) {
    console.error('Usage: node release.js major|minor|patch')
    process.exit(1)
  }
  
  exec('npm test')
  
  exec('npm run geotag')
  exec('git commit -m "Geotag package for release" package.json')
  
  exec('npm version ' + versionIncrement)
  
  exec('git push')
  exec('git push --tags')
  exec('npm publish')
  
  function exec (cmd) {
    var ret = shell.exec(cmd, { silent: true })
  
    if (ret.code !== 0) {
      console.error(ret.output)
      process.exit(1)
    }
  
    return ret
  }
  