grunt-file-regex-rename

Rename files matching regulaur expression

grunt-file-regex-rename

Replaces strings on files by using string or regex patterns. Attempts to be a String.prototype.replace adapter task for your grunt project.

To install this grunt plugin on your project simply do: npm install grunt-file-regex-rename

Then add this line to your project's Gruntfile.js:

grunt.loadNpmTasks('grunt-file-regex-rename');

Inside your Gruntfile.js file add a section named fileregexrename. This section specifies the files to rename, destinations, patterns and replacements.

This defines what files this task will edit and must follow Gruntfile Files mapping.

This controls how this task operates and should contain key:value pairs, see options below.

This option will hold all your pattern/replacement pairs. A pattern/replacement pair should contain key:value pairs containing:

  • pattern string or regex
  • replacement string
options: {
  replacements: [{
    pattern: /\/(asdf|qwer)\//ig,
    replacement: "'$1'"
  }, {
    pattern: ",",
    replacement: ";"
  }]
}

If the pattern is a string, only the first occurrence will be replaced, as stated on String.prototype.replace.

fileregexrename: {
  dist: {
    files: {
      "path/to/directory/": "path/to/source/*", // includes files in dir 
      "path/to/directory/": "path/to/source/**", // includes files in dir and subdirs 
      "path/to/project-<%= pkg.version %>/": "path/to/source/**", // variables in destination 
      "path/to/directory/": ["path/to/sources/*.js", "path/to/more/*.js"], // include JS files in two diff dirs 
      "path/to/filename.ext": "path/to/source.ext"
    },
    options: {
      replacements: [{
        pattern: /\/(asdf|qwer)\//ig,
        replacement: "'$1'"
      }, {
        pattern: ",",
        replacement: ";"
      }]
    }
  },
  inline: {
    options: {
      replacements: [
        // place files inline example 
        {
            pattern: '<script src="js/async.min.js"></script>',
            replacement: '<script><%= grunt.file.read("path/to/source/js/async.min.js") %></script>'
        }
      ]
    },
    files: {...}
  }
}

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.

0.1.0

  • Initial release.

Copyright (c) 2012 Kashif Iqbal Khan. Licensed under the MIT license.