/grunt-properties-reader

Grunt plugin that reads java properties files.

Primary LanguageJavaScriptMIT LicenseMIT

grunt-properties-reader

Grunt plugin that reads java properties files.

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-properties-reader --save-dev

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

grunt.loadNpmTasks('grunt-properties-reader');

The "properties" task

Overview

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

grunt.initConfig({
  properties: {
    props: 'configFile.properties'
  }
});

Options

Options are passed directly into the second argument of the grunt.file.read operation. See grunt.file

Usage Examples

Basic

In this example, a properties file is used to read a server deployment location. The deployDir property is then used in a clean task.

The example application.properties file:

deployDir=C:\server\deployment

And example Gruntfile.js:

grunt.initConfig({
  properties: {
    app: 'application.properties'
  },
  clean: {
    deployDir: '<%= app.deployDir %>'
  }
})

grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-properties-reader');

grunt.registerTask('cleanDeploy', ['properties', 'clean:deployDir'])

Running grunt cleanDeploy from the command line will delete the directory.

Multiple Files

In this example, multiple properties files are read in the order specified. Values from subsequent files are merged with those from the proceeding. Therefore, values from proceeding files will overwrite those from the preceeding files. Consider the following properties files:

deployDir=C:\server\deployment
deployDir=/opt/server
debug=true
grunt.initConfig({
  properties: {
    app: [ 'default.properties', 'overrides.properties' ]
  },
  clean: {
    deployDir: '<%= app.deployDir %>'
  }
})

grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-properties-reader');

grunt.registerTask('cleanDeploy', ['properties', 'clean:deployDir'])

When executed, the app variable will contain the following values:

{
  deployDir=/opt/server
  debug=true
}

Finally, when using multiple files, the first file in the list must be present. All subsequent files are optional, and will not cause the task to fail if they are not present.

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

  • 2013-06-07 v0.1.0 Initial release
  • 2013-07-30 v0.1.1 Non greedy equals (thanks @nuarhu)
  • 2014-03-11 v0.1.2 Multiple properties file support (thanks @jburwell)
  • 2014-04-13 v0.1.3 Bug fix & multi-line support (thanks @hemdada & @bostaunieux)