stratic-date-in-path
Version:
Make a Vinyl file's path include the date based on Stratic metadata
40 lines (30 loc) • 1.27 kB
JavaScript
/*
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
;
var through2 = require('through2');
var moment = require('moment');
var path = require('path');
module.exports = function(data) {
return through2.obj(function(file, enc, callback) {
var that = this;
var date = moment.unix(file.data.time.epoch);
var offset = Number(file.data.time.utcoffset.slice(3));
date.utcOffset(offset);
var year = date.year().toString();
var month = date.month() + 1;
month = month < 10 ? '0' + month.toString() : month.toString();
file.path = path.join(file.base, year, month, file.relative);
that.push(file);
callback();
});
};