GithubHelp home page GithubHelp logo

liqweed / grunt-svninfo Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 8.0 39 KB

Grunt.js plugin that provides easy access to Subversion repository metadata.

License: MIT License

CoffeeScript 66.25% JavaScript 33.75%

grunt-svninfo's Introduction

grunt-svninfo Built with Grunt

A Grunt.js plugin that provides easy access to Subversion working copy metadata (svn info).

Getting Started

This plugin requires Grunt ~0.4.0

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-svninfo --save-dev

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

grunt.loadNpmTasks('grunt-svninfo');

That's about it, no configuration necessary.

The "svninfo" task

Overview

In your project's Gruntfile, add a section named svninfo to the data object passed into grunt.initConfig(). Executing the task svninfo would run svn info in the command line and would make the retrieved data available via grunt.config (e.g. <%= svninfo.rev %>) in your build. The resulting svninfo object has the following structure:

{
  "rev": "321",
  "url": "https://yourproject.unfuddle.com/svn/repo/trunk",
  "last": {
 	  "rev": "321",
 	  "author": "me",
 	  "date": "2013-02-10 12:35:30 +0200"
  },
  "repository": {
 	  "root": "https://yourproject.unfuddle.com/svn/repo",
 	  "id": "f5d41312-1fa6-4ca6-a93e-e27d7e98fc43"
  }
}

Options

cwd

Type: String

Allows to specify a cwd (current working directory) path for the SVN repository of which to retrieve the information. The default directory is the where you run grunt from ('.').

Example:

svninfo: {
  options: {
    cwd: './myproject/ishere'
  },
  ...
}

output

Type: String

Allows to specify a custom object that would contain the retrieved and parsed SVN info. Defaults to 'svninfo'. This feature came about to support projects with multiple external dependencies ("extenals"), in which each external would have its own info object instead of having them override each other with each 'info' call.

Name of object can be redefined or specified by the first argument of task (see below).

Example:

svninfo: {
  options: {
    output: 'myExternal_svninfo'
  },
  ...
}

args

Type: Array

Allows to specify options for svn info command (e.g. target, username, password etc).

Example:

svninfo: {
  options: {
    args: ['http://some.svn-server.net/repo/project/trunk', '--username', 'name', '--password', 'pass']
  },
  ...
}

It is possible to retrieve command options from other option instead of args. It can be done by using the second argument of task (see below).

Task arguments

Two arguments can be passed to the task:

  1. Allows to specify a custom object that would contain the retrieved and parsed SVN info. This argument has priority over the output option.
  2. Allows to specify name of options field that contains list of command options. This argument has priority over the args option.

Example:

grunt.initConfig({
  svninfo: {
    options: {
      abcArgs: ['http://some.svn-server.net/repo/abc/trunk', '--username', 'name', '--password', 'pass']
    },
    ...
  }
...
grunt.registerTask("abcInfo", ["svninfo:abc:abcArgs"]);
// or `grunt svninfo:abc:abcArgs` from command line
});

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

  • 0.1.5 - Using svninfo XML output for better localization support - thanks to @dabos-GFI
  • 0.1.4 - Support for task arguments and args option - thanks to @gamtiq
  • 0.1.3 - Support for a custom name for the info object - thanks to @solomojb
  • 0.1.2 - Support for 'cwd' option - thanks to @richmarr
  • 0.1.1 - Grunt 0.4.x compatibility
  • 0.1.0 - Initial release

grunt-svninfo's People

Contributors

dabos-gfi avatar gamtiq avatar liqweed avatar richmarr avatar solomojb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

grunt-svninfo's Issues

Update build on npm

Version 1.0.0 seems to be committed to master, but not npm

image

I am updating my build file to grunt 1.0.0 but can't right now. Thanks!

Grunt 0.4 Release

I'm posting this issue to let you know that we will be publishing Grunt 0.4 on Monday, February 18th.

If your plugin is not already Grunt 0.4 compatible, would you please consider updating it? For an overview of what's changed, please see our migration guide.

If you'd like to develop against the final version of Grunt before Monday, please specify "grunt": "0.4.0rc8" as a devDependency in your project. After Monday's release, you'll be able to use "grunt": "~0.4.0" to actually publish your plugin. If you depend on any plugins from the grunt-contrib series, please see our list of release candidates for compatible versions. All of these will be updated to final status when Grunt 0.4 is published.

Also, in an effort to reduce duplication of effort and fragmentation in the developer community, could you review the grunt-contrib series of plugins to see if any of your functionality overlaps significantly with them? Grunt-contrib is community maintained with 40+ contributors—we'd love to discuss any additions you'd like to make.

Finally, we're working on a new task format that doesn't depend on Grunt: it's called node-task. Once this is complete, there will be one more conversion, and then we'll never ask you to upgrade your plugins to support our changes again. Until that happens, thanks for bearing with us!

If you have any questions about how to proceed, please respond here, or join us in #grunt on irc.freenode.net.

Thanks, we really appreciate your work!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.