diff options
Diffstat (limited to 'lib/output/website/copyPluginAssets.js')
-rw-r--r-- | lib/output/website/copyPluginAssets.js | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/lib/output/website/copyPluginAssets.js b/lib/output/website/copyPluginAssets.js deleted file mode 100644 index 9150636..0000000 --- a/lib/output/website/copyPluginAssets.js +++ /dev/null @@ -1,117 +0,0 @@ -var path = require('path'); - -var ASSET_FOLDER = require('../../constants/pluginAssetsFolder'); -var Promise = require('../../utils/promise'); -var fs = require('../../utils/fs'); - -/** - Copy all assets from plugins. - Assets are files stored in "_assets" - nd resources declared in the plugin itself. - - @param {Output} - @return {Promise} -*/ -function copyPluginAssets(output) { - var book = output.getBook(); - - // Don't copy plugins assets for language book - // It'll be resolved to the parent folder - if (book.isLanguageBook()) { - return Promise(output); - } - - var plugins = output.getPlugins() - - // We reverse the order of plugins to copy - // so that first plugins can replace assets from other plugins. - .reverse(); - - return Promise.forEach(plugins, function(plugin) { - return copyAssets(output, plugin) - .then(function() { - return copyResources(output, plugin); - }); - }) - .thenResolve(output); -} - -/** - Copy assets from a plugin - - @param {Plugin} - @return {Promise} -*/ -function copyAssets(output, plugin) { - var logger = output.getLogger(); - var pluginRoot = plugin.getPath(); - var options = output.getOptions(); - - var outputRoot = options.get('root'); - var assetOutputFolder = path.join(outputRoot, 'gitbook'); - var prefix = options.get('prefix'); - - var assetFolder = path.join(pluginRoot, ASSET_FOLDER, prefix); - - if (!fs.existsSync(assetFolder)) { - return Promise(); - } - - logger.debug.ln('copy assets from theme', assetFolder); - return fs.copyDir( - assetFolder, - assetOutputFolder, - { - deleteFirst: false, - overwrite: true, - confirm: true - } - ); -} - -/** - Copy resources from a plugin - - @param {Plugin} - @return {Promise} -*/ -function copyResources(output, plugin) { - var logger = output.getLogger(); - - var options = output.getOptions(); - var outputRoot = options.get('root'); - - var state = output.getState(); - var resources = state.getResources(); - - var pluginRoot = plugin.getPath(); - var pluginResources = resources.get(plugin.getName()); - - var assetsFolder = pluginResources.get('assets'); - var assetOutputFolder = path.join(outputRoot, 'gitbook', plugin.getNpmID()); - - if (!assetsFolder) { - return Promise(); - } - - // Resolve assets folder - assetsFolder = path.resolve(pluginRoot, assetsFolder); - if (!fs.existsSync(assetsFolder)) { - logger.warn.ln('assets folder for plugin "' + plugin.getName() + '" doesn\'t exist'); - return Promise(); - } - - logger.debug.ln('copy resources from plugin', assetsFolder); - - return fs.copyDir( - assetsFolder, - assetOutputFolder, - { - deleteFirst: false, - overwrite: true, - confirm: true - } - ); -} - -module.exports = copyPluginAssets; |