1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- var rpt = require('read-package-tree');
- var data = require('./package.json');
- var path = require('path');
- var glob = require('glob');
- var fs = require('fs-extra');
- var seen = {};
- var schemaDir = path.resolve('./schemas');
- fs.removeSync(schemaDir);
- fs.ensureDirSync(schemaDir);
- var themesDir = path.resolve('./themes');
- fs.removeSync(themesDir);
- fs.ensureDirSync(themesDir);
- function extractNode(data) {
- data.children.forEach(function(child) {
- extractNode(child);
- });
- if (seen[data.package.name]) {
- return;
- }
- seen[data.package.name] = true;
- var jlab = data.package.jupyterlab
- if (!jlab) {
- return;
- }
- // Handle schemas.
- var schemaDir = jlab['schemaDir'];
- if (schemaDir) {
- debugger;
- schemaDir = path.join(data.realpath, schemaDir);
- var schemas = glob.sync(path.join(schemaDir, '*'));
- schemas.forEach(function(schemaPath) {
- var file = path.basename(schemaPath);
- var to = path.join('schemas', file);
- fs.copySync(schemaPath, to);
- });
- }
- // Handle themes.
- var themeDir = jlab['themeDir'];
- if (themeDir) {
- var name = data.package.name.replace('@', '');
- name = name.replace('/', '-');
- var from = path.join(data.realpath, themeDir);
- var to = path.join('themes', name);
- fs.copySync(from, to);
- }
- }
- rpt('.', function (er, data) {
- extractNode(data);
- })
|