summaryrefslogtreecommitdiffstats
path: root/lib/output/website/onInit.js
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-04-25 21:13:17 +0200
committerSamy Pesse <samypesse@gmail.com>2016-04-25 21:13:17 +0200
commitc34a9f6213c204c43c78dd691a5295d7e5a757e8 (patch)
tree96f287daa52ade759b7b0e635b6e36dea7acaf86 /lib/output/website/onInit.js
parentf5df41c75f6e6d25ffc9f86feeac29892fb9f856 (diff)
downloadgitbook-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.js53
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;