forked from sheetjs/sheetjs
30 lines
849 B
TypeScript
30 lines
849 B
TypeScript
|
#!/usr/bin/env ts-node
|
||
|
/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */
|
||
|
/* eslint-env node */
|
||
|
|
||
|
import { readFileSync, writeFileSync } from 'fs';
|
||
|
import { resolve } from 'path';
|
||
|
import { otorp } from './';
|
||
|
|
||
|
if(!process.argv[2] || process.argv[2] == "-h" || process.argv[2] == "--help") {
|
||
|
[
|
||
|
"usage: otorp <path/to/bin> [output/folder]",
|
||
|
" if no output folder specified, log all discovered defs",
|
||
|
" if output folder specified, attempt to write defs in the folder"
|
||
|
].map(x => console.error(x));
|
||
|
process.exit(1);
|
||
|
}
|
||
|
var buf = readFileSync(process.argv[2]);
|
||
|
|
||
|
var otorps = otorp(buf);
|
||
|
|
||
|
otorps.forEach(({name, proto}) => {
|
||
|
if(!process.argv[3]) {
|
||
|
console.log(proto);
|
||
|
} else {
|
||
|
var pth = resolve(process.argv[3] || "./", name.replace(/[/]/g, "$"));
|
||
|
console.error(`writing ${name} to ${pth}`);
|
||
|
writeFileSync(pth, proto);
|
||
|
}
|
||
|
});
|