49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
| #!/usr/bin/env node
 | |
| 
 | |
| var fs = require('fs');
 | |
| var path = require('path');
 | |
| var glob = require('glob');
 | |
| 
 | |
| var args = require('optimist').argv;
 | |
| 
 | |
| var header = args.h || args.header;
 | |
| 
 | |
| var componentsDir = path.join('src', 'components');
 | |
| 
 | |
| var componentIndex = path.join('src', 'component-index.js');
 | |
| 
 | |
| var packageJson = JSON.parse(fs.readFileSync('./package.json'));
 | |
| 
 | |
| var strm = fs.createWriteStream(componentIndex);
 | |
| 
 | |
| if (header) {
 | |
|    strm.write(fs.readFileSync(header));
 | |
|    strm.write('\n');
 | |
| }
 | |
| 
 | |
| strm.write("/*\n");
 | |
| strm.write(" * THIS FILE IS AUTO-GENERATED\n");
 | |
| strm.write(" * You can edit it you like, but your changes will be overwritten,\n");
 | |
| strm.write(" * so you'd just be trying to swim upstream like a salmon.\n");
 | |
| strm.write(" * You are not a salmon.\n");
 | |
| strm.write(" */\n\n");
 | |
| 
 | |
| if (packageJson['matrix-react-parent']) {
 | |
|     strm.write("module.exports.components = require('"+packageJson['matrix-react-parent']+"/lib/component-index').components;\n\n");
 | |
| } else {
 | |
|     strm.write("module.exports.components = {};\n");
 | |
| }
 | |
| 
 | |
| var files = glob.sync('**/*.js', {cwd: componentsDir});
 | |
| for (var i = 0; i < files.length; ++i) {
 | |
|     var file = files[i].replace('.js', '');
 | |
| 
 | |
|     var moduleName = (file.replace(/\//g, '.'));
 | |
| 
 | |
|     strm.write("module.exports.components['"+moduleName+"'] = require('./components/"+file+"');");
 | |
|     strm.write('\n');
 | |
|     strm.uncork();
 | |
| }
 | |
| 
 | |
| strm.end();
 |