1 | (function() {
|
2 | module.exports = function($) {
|
3 | var gulp, normalizePathToArray, using, wrapList;
|
4 | ({normalizePathToArray, wrapList} = $.fn);
|
5 | gulp = require('gulp');
|
6 | using = require('gulp-using');
|
7 |
|
8 |
|
9 | return $.rename_ = async function(source, option) {
|
10 | var i, item, len, listHistory;
|
11 | source = normalizePathToArray(source);
|
12 | listHistory = [];
|
13 | await new Promise(function(resolve) {
|
14 | var rename;
|
15 |
|
16 |
|
17 | rename = require('gulp-rename');
|
18 | return gulp.src(source).pipe(using()).pipe(rename(option)).pipe(gulp.dest(function(e) {
|
19 | listHistory.push(e.history);
|
20 | return e.base;
|
21 | })).on('end', function() {
|
22 | return resolve();
|
23 | });
|
24 | });
|
25 | $.info.pause('$.rename_');
|
26 | for (i = 0, len = listHistory.length; i < len; i++) {
|
27 | item = listHistory[i];
|
28 | if ((await $.isExisted_(item[1]))) {
|
29 | await $.remove_(item[0]);
|
30 | }
|
31 | }
|
32 | $.info.resume('$.rename_');
|
33 | $.info('file', `renamed ${wrapList(source)} as '${$.parseString(option)}'`);
|
34 | return $;
|
35 | };
|
36 | };
|
37 |
|
38 | }).call(this);
|