first commit
This commit is contained in:
+20
@@ -0,0 +1,20 @@
|
||||
Copyright 2013 Hector Guillermo Parra Alvarez
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
# gulp-rename
|
||||
|
||||
gulp-rename is a [gulp](https://github.com/wearefractal/gulp) plugin to rename files easily.
|
||||
|
||||
[](https://nodei.co/npm/gulp-rename/)
|
||||
|
||||
[](http://travis-ci.org/hparra/gulp-rename)
|
||||
[](https://david-dm.org/hparra/gulp-rename#info=devDependencies)
|
||||
|
||||
## Usage
|
||||
|
||||
gulp-rename provides simple file renaming methods.
|
||||
|
||||
```javascript
|
||||
var rename = require("gulp-rename");
|
||||
|
||||
// rename via string
|
||||
gulp.src("./src/main/text/hello.txt")
|
||||
.pipe(rename("main/text/ciao/goodbye.md"))
|
||||
.pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/goodbye.md
|
||||
|
||||
// rename via function
|
||||
gulp.src("./src/**/hello.txt")
|
||||
.pipe(rename(function (path) {
|
||||
path.dirname += "/ciao";
|
||||
path.basename += "-goodbye";
|
||||
path.extname = ".md";
|
||||
}))
|
||||
.pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/hello-goodbye.md
|
||||
|
||||
// rename via hash
|
||||
gulp.src("./src/main/text/hello.txt", { base: process.cwd() })
|
||||
.pipe(rename({
|
||||
dirname: "main/text/ciao",
|
||||
basename: "aloha",
|
||||
prefix: "bonjour-",
|
||||
suffix: "-hola",
|
||||
extname: ".md"
|
||||
}))
|
||||
.pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/bonjour-aloha-hola.md
|
||||
```
|
||||
|
||||
**See test/rename.spec.js for more examples and test/path-parsing.spec.js for hairy details.**
|
||||
|
||||
## Notes
|
||||
|
||||
* `dirname` is the relative path from the base directory set by `gulp.src` to the filename.
|
||||
* `gulp.src()` uses glob-stream which sets the base to the parent of the first directory glob (`*`, `**`, [], or extglob). `dirname` is the remaining directories or `./` if none. glob-stream versions >= 3.1.0 (used by gulp >= 3.2.2) accept a `base` option, which can be used to explicitly set the base.
|
||||
* `gulp.dest()` renames the directories between `process.cwd()` and `dirname` (i.e. the base relative to CWD). Use `dirname` to rename the directories matched by the glob or descendents of the base of option.
|
||||
* `basename` is the filename without the extension like path.basename(filename, path.extname(filename)).
|
||||
* `extname` is the file extension including the '.' like path.extname(filename).
|
||||
* when using a function, a second `file` argument is provided with the whole context and original file value
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](http://en.wikipedia.org/wiki/MIT_License)
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
'use strict';
|
||||
|
||||
var Stream = require('stream');
|
||||
var Path = require('path');
|
||||
|
||||
function gulpRename(obj, options) {
|
||||
|
||||
options = options || {};
|
||||
|
||||
var stream = new Stream.Transform({objectMode: true});
|
||||
|
||||
function parsePath(path) {
|
||||
var extname = options.multiExt ? Path.basename(path).slice(Path.basename(path).indexOf('.')) : Path.extname(path);
|
||||
return {
|
||||
dirname: Path.dirname(path),
|
||||
basename: Path.basename(path, extname),
|
||||
extname: extname
|
||||
};
|
||||
}
|
||||
|
||||
stream._transform = function (originalFile, unused, callback) {
|
||||
|
||||
|
||||
var file = originalFile.clone({contents: false});
|
||||
var parsedPath = parsePath(file.relative);
|
||||
var path;
|
||||
|
||||
var type = typeof obj;
|
||||
|
||||
if (type === 'string' && obj !== '') {
|
||||
|
||||
path = obj;
|
||||
|
||||
} else if (type === 'function') {
|
||||
|
||||
obj(parsedPath, file);
|
||||
path = Path.join(parsedPath.dirname, parsedPath.basename + parsedPath.extname);
|
||||
|
||||
} else if (type === 'object' && obj !== undefined && obj !== null) {
|
||||
|
||||
var dirname = 'dirname' in obj ? obj.dirname : parsedPath.dirname,
|
||||
prefix = obj.prefix || '',
|
||||
suffix = obj.suffix || '',
|
||||
basename = 'basename' in obj ? obj.basename : parsedPath.basename,
|
||||
extname = 'extname' in obj ? obj.extname : parsedPath.extname;
|
||||
|
||||
path = Path.join(dirname, prefix + basename + suffix + extname);
|
||||
|
||||
} else {
|
||||
|
||||
callback(new Error('Unsupported renaming parameter type supplied'), undefined);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
file.path = Path.join(file.base, path);
|
||||
|
||||
// Rename sourcemap if present
|
||||
if (file.sourceMap) {
|
||||
file.sourceMap.file = file.relative;
|
||||
}
|
||||
|
||||
callback(null, file);
|
||||
};
|
||||
|
||||
return stream;
|
||||
}
|
||||
|
||||
module.exports = gulpRename;
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"_from": "gulp-rename@^1.2.2",
|
||||
"_id": "gulp-rename@1.4.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==",
|
||||
"_location": "/gulp-rename",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "gulp-rename@^1.2.2",
|
||||
"name": "gulp-rename",
|
||||
"escapedName": "gulp-rename",
|
||||
"rawSpec": "^1.2.2",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^1.2.2"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"#DEV:/"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz",
|
||||
"_shasum": "de1c718e7c4095ae861f7296ef4f3248648240bd",
|
||||
"_spec": "gulp-rename@^1.2.2",
|
||||
"_where": "/home/kevin/Documents/Sites/figureslibres.net/user/themes/figureslibres",
|
||||
"author": {
|
||||
"name": "Hector Guillermo Parra Alvarez",
|
||||
"email": "hector@hectorparra.com",
|
||||
"url": "https://github.com/hparra"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/hparra/gulp-rename/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"deprecated": false,
|
||||
"description": "Rename files",
|
||||
"devDependencies": {
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-sourcemaps": "^2.6.4",
|
||||
"jscs": "^3.0.0",
|
||||
"jshint": "^2.0.0",
|
||||
"map-stream": "^0.0.7",
|
||||
"mocha": "^5.0.0",
|
||||
"should": "^13.0.0",
|
||||
"vinyl": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
},
|
||||
"files": [
|
||||
"index.js"
|
||||
],
|
||||
"homepage": "https://github.com/hparra/gulp-rename",
|
||||
"keywords": [
|
||||
"gulpplugin"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "./index.js",
|
||||
"name": "gulp-rename",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/hparra/gulp-rename.git"
|
||||
},
|
||||
"scripts": {
|
||||
"pretest": "jscs index.js test/ && jshint index.js test/",
|
||||
"test": "mocha"
|
||||
},
|
||||
"version": "1.4.0"
|
||||
}
|
||||
Reference in New Issue
Block a user