-shell = require 'shelljs'
 module.exports = (grunt) ->
+  pkgFile = 'sieve.jquery.json'
+  pkg = grunt.file.readJSON pkgFile
 
   # Project configuration.
   grunt.initConfig
     # Metadata.
-    pkg: grunt.file.readJSON 'sieve.jquery.json'
+    pkg: pkg
     basename: 'jquery.<%= pkg.name %>'
     headline: '<%= pkg.title || pkg.name %> v<%= pkg.version %>'
     copyright: '<%= grunt.template.today("yyyy") %> <%= pkg.author.name %>'

      grunt.log.error()
      grunt.log.error(p.output)
      grunt.warn "Non-zero exit code for `#{command}`."

  grunt.registerTask 'test', ['qunit']
  grunt.registerTask 'default', ['clean', 'build', 'test']

  grunt.registerTask 'bump', (type) ->
    oldVersion = pkg.version
    pkg.version = versionBump(oldVersion, type)
    grunt.log.write('Bumping version to ' + pkg.version);
    grunt.file.write(pkgFile, JSON.stringify(pkg, null, '  ') + '\n')
    grunt.log.ok()
    grunt.task.run('default', 'commit');

  grunt.registerTask "commit", ->
    run "git add ."
    run "git commit -m 'Bumped version to v#{pkg.version}'"
    grunt.log.subhead("DON'T FORGET TO `grunt release`")

  grunt.registerTask 'release', 'Tag and publish a new release.', ->
    version = grunt.config("pkg.version")
    run "git rebase master gh-pages"
    run "git checkout master"
