grunt-go-reload

0.1.2 • Public • Published

grunt-go-reload Build Status

Build and run a single instance of a go program.

Use this plugin in conjunction with grunt-contrib-watch to reload your go app automatically on every code change.

Alternatively, use this plugin to build and run your go app forever using the go_reload task.

This plugin is built on Grunt 1.0.1 but should work on earlier versions.

Getting Started

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-go-reload --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks("grunt-go-reload");

The "go_reload" task

Overview

In your project's Gruntfile, add a section named go_reload to the data object passed into grunt.initConfig().

grunt.initConfig({
  go_reload: {
    app: {
      name: "sample-go-app",
      port: 3000
    }
  },
});

Options

options.name

Type: String Default value: None

A string value used in the go build compilation step to name the output executable (using the go build -o option). See go build -h for more details.

options.port

Type: Number Default value: 3000

A number assigned to the PORT environment variable when executing your go app. Access this value in go using os.Getenv("PORT").

options.background

Type: Boolean Default value: false

Use false to make go_reload block Grunt in order to keep it running. Use true if configuring with grunt-contrib-watch to reload your go app automatically on every code change. See Watch Configuration for specifics.

options.env

Type: Object Default value: undefined

These values will be passed as environment variables when executing your go app. Access these value in go using os.Getenv(...). For example:

grunt.initConfig({
  go_reload: {
    app: {
      name: "sample-go-app",
      port: 3000,
      env: {
        GO_ENV: "development",
        API_KEY: "0123456789"
      }
    }
  },
});

Usage Examples

Basic Configuration

Use this configuration to have Grunt build and run your go app forever.

grunt.initConfig({
  go_reload: {
    app: {
      name: "sample-go-app",
      port: 3000
    }
  },
});

grunt.loadNpmTasks("grunt-go-reload");

grunt.registerTask("default", ["go_reload"]);

Watch Configuration

Use this configuration to have Grunt reload your go app on every code change using grunt-contrib-watch.

grunt.initConfig({
  go_reload: {
    app: {
      name: "sample-go-app",
      port: 3000,
      background: true
    }
  },
  watch: {
    options: {
      atBegin: true
    },
    go: {
      files: ["**/*.go"],
      tasks: ["go_reload"]
    }
  }
});

grunt.loadNpmTasks("grunt-go-reload");
grunt.loadNpmTasks("grunt-contrib-watch");

grunt.registerTask("default", ["watch"]);

Contributing

This plugin was created to service a basic go web app so pull requests / issues to make this plugin work with your project are welcome!

Release History

Readme

Keywords

Package Sidebar

Install

npm i grunt-go-reload

Weekly Downloads

1

Version

0.1.2

License

none

Last publish

Collaborators

  • joeydong