in web/cli/src/index.ts [19:59]
function start(wasmpkg: glTFVariantMeld) {
let args = process.argv.slice(2);
if (args.length < 2) {
console.error(
"Usage: %s [<tag>:]<input glb> [<tag>:]<input glb> <output glb>",
basename(process.argv[1])
);
process.exit(1);
}
let inputs: [string, string][] = [];
for (let ix = 0; ix < args.length - 1; ix++) {
inputs.push(parseInputArg(args[ix]));
}
let output = args[args.length - 1];
function parse_input(ix: number): VariationalAsset {
let tag = inputs[ix][0];
let file = inputs[ix][1];
console.log("Parsing source asset: '" + file + "'...");
let bytes = readAndValidate(file) as Uint8Array;
return wasmpkg.VariationalAsset.wasm_from_slice(bytes, tag);
}
let result = parse_input(0);
console.log("Initial asset:");
describe_asset(result);
for (let ix = 1; ix < inputs.length; ix++) {
console.log();
result = wasmpkg.VariationalAsset.wasm_meld(result, parse_input(ix));
console.log("New melded result:");
describe_asset(result);
}
let output_glb = result.wasm_glb();
writeFileSync(output, output_glb);
console.log("Success! %d bytes written to '%s'.", output_glb.length, output);
}