grunt-glitch
Version:
A grunt task you shouldn’t use.
113 lines (80 loc) • 2.72 kB
Markdown
# grunt-glitch
> A grunt task you shouldn't use.
This grunt task is used to intentionally corrupt and mangle files. Use with caution.
## Getting Started
This plugin requires Grunt `~0.4.2`
If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
```shell
npm install grunt-glitch --save-dev
```
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
```js
grunt.loadNpmTasks('grunt-glitch');
```
## The "glitch" task
### Overview
In your project's Gruntfile, add a section named `glitch` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
glitch: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
});
```
### Options
#### options.enabled
Type: `Boolean`
Default value: false
Must be explicitly set to true to activate the task. Make sure you fully understand what this grunt plugin does before testing it.
#### options.force
Type: `Boolean`
Default value: false
Set to true to ignore errors.
#### options.probability
Type: `String`
Default value: `0.0001`
Probability of deviation per byte (between 0 and 1).
#### options.deviation
Type: `Number`
Default value: `2`
Maximum value deviation per byte.
#### options.whiteList
Type: `Number[]`
Default value: `[]`
Array of whitelisted values, if set only bytes with those values will be modified.
#### options.blackList
Type: `Number[]`
Default value: `[]`
Array of blacklisted values, no byte with those values will be modified.
#### options.deviationFunction
Type: `Function`
Default value: `null`
Replace the default deviation function of the stream, allows to write more complex filtering than whitelisting and blacklisting.
### Usage Examples
In this example, we slightly corrupt every jpg files to get glitched images.
```js
grunt.initConfig({
glitch: {
options: {
enabled : true,
force : true
},
my_targets : {
src: ['**/*.jpg'],
deviation : 2,
probability : 0.0001,
}
}
});
```
## Potential use cases
* Glitch a set of image files without any actual code except for a friendly grunt task.
* Train your debug muscles.
* Celebrating april's fool day at the expense of a grunt user.
## License
MIT