diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-04-25 21:13:17 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-04-25 21:13:17 +0200 |
commit | c34a9f6213c204c43c78dd691a5295d7e5a757e8 (patch) | |
tree | 96f287daa52ade759b7b0e635b6e36dea7acaf86 /lib/output/website/onInit.js | |
parent | f5df41c75f6e6d25ffc9f86feeac29892fb9f856 (diff) | |
download | gitbook-c34a9f6213c204c43c78dd691a5295d7e5a757e8.zip gitbook-c34a9f6213c204c43c78dd691a5295d7e5a757e8.tar.gz gitbook-c34a9f6213c204c43c78dd691a5295d7e5a757e8.tar.bz2 |
Copy assets from themes to output folder
Diffstat (limited to 'lib/output/website/onInit.js')
-rw-r--r-- | lib/output/website/onInit.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/output/website/onInit.js b/lib/output/website/onInit.js new file mode 100644 index 0000000..632c6d6 --- /dev/null +++ b/lib/output/website/onInit.js @@ -0,0 +1,53 @@ +var path = require('path'); + +var ASSET_FOLDER = require('../../constants/pluginAssetsFolder'); +var Promise = require('../../utils/promise'); +var fs = require('../../utils/fs'); + +/** + Initialize the generator +*/ +function onInit(output) { + return Promise(output) + .then(copyPluginAssets) + .thenResolve(output); +} + + +/** + Copy all assets from plugins + + @param {Output} + @return {Promise} +*/ +function copyPluginAssets(output) { + var options = output.getOptions(); + var plugins = output.getPlugins(); + var logger = output.getLogger(); + + var outputRoot = options.get('root'); + var assetOutputFolder = path.join(outputRoot, 'gitbook'); + var prefix = options.get('prefix'); + + return Promise.forEach(plugins, function(plugin) { + var pluginRoot = plugin.getPath(); + var assetFolder = path.join(pluginRoot, ASSET_FOLDER, prefix); + + if (!fs.existsSync(assetFolder)) { + return; + } + + logger.debug.ln('copy assets from theme', assetFolder); + return fs.copyDir( + assetFolder, + assetOutputFolder, + { + deleteFirst: false, + overwrite: true, + confirm: true + } + ); + }); +} + +module.exports = onInit; |