grunt-goserver

Grunt task to spawn and reload a Go server

Usage no npm install needed!

<script type="module">
  import gruntGoserver from 'https://cdn.skypack.dev/grunt-goserver';
</script>

README

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: {
      // Task-specific options go here.
    },
    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)