gentelella/vendors/update/lib/runner/decorate.js

40 lines
1.0 KiB
JavaScript

'use strict';
var path = require('path');
var utils = require('../utils');
module.exports = function(options) {
return function(app) {
this.define('decorate', function(name, app, options) {
app.option('name', name)
.option('fullname', options.fullname || name)
.option('path', options.path || '');
app.create('templates', {
cwd: path.resolve(options.path, 'templates'),
renameKey: function(key) {
return path.basename(key);
}
});
var base = this.base;
app.define('getFile', function(name) {
var view = base.files.getView.apply(base.files, arguments);
if (!view) {
view = app.templates.getView.apply(app.templates, arguments);
}
if (!view) return null;
view.basename = view.basename.replace(/^_/, '.');
view.basename = view.basename.replace(/^$/, '');
return view;
});
base.define('getFile', app.getFile);
base.files.getFile = base.files.getView.bind(base.files);
return this;
});
};
};