grunt-goserver
Grunt task to spawn and reload a Go server
Getting Started
This plugin requires Grunt ~0.4.1
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-goserver --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-goserver');
The "goserver" task
Overview
In your project's Gruntfile, add a section named goserver
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
goserver: {
options: {
},
default: {
srcPath: '/full/path/to/src/folder',
srcFile: 'name_of_go_file_to_build',
binPath: '/full/path/to/go/bin/folder'
},
},
})
Options
options.srcPath
Type: String
Default value: ''
Full path to Go source folder
Must be the full path, do not use ~/
options.srcFile
Type: String
Default value: ''
Name of Go source file to build e.g. 'main'
Extension is not necessary
options.binPath
Type: String
Default value: ''
Full path to Go binary folder
Must be the full path, do not use ~/
This is the path where your binary will be installed when doing 'go install'.
Usage Examples
Default Options
grunt.initConfig({
goserver: {
options: {},
default: {
srcPath: '/Users/John/Go/src/github.com/john/repo_name',
srcFile: 'main',
binPath: '/Users/John/Go/bin'
},
},
})
Using with watch
grunt.initConfig({
watch: {
go: {
files: ['**/*.go'],
tasks: ['goserver'],
options: {
nospawn: true,
}
}
},
goserver: {
default: {
srcPath: '/Users/John/Go/src/github.com/john/repo_name',
srcFile: 'main',
binPath: '/Users/John/Go/bin'
}
}
});
grunt.registerTask('start', function () {
grunt.task.run('goserver');
grunt.task.run('watch');
});
grunt.loadNpmTasks('grunt-goserver');
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Release History
(Nothing yet)