#!/usr/bin/env node // CLI entry. Parses args, dispatches to bake(), prints summary. const { bake } = require('../src/bake'); function parseArgs(argv) { const opts = {}; for (let i = 0; i < argv.length; i++) { const a = argv[i]; const next = argv[i + 1]; switch (a) { case '--in': opts.inDir = next; i++; break; case '--out': opts.outDir = next; i++; break; case '--atlas-id': opts.atlasId = next; i++; break; case '--tile-size': opts.tileSize = (next === 'auto') ? 'auto' : parseInt(next, 10); i++; break; case '--max-size': opts.maxSize = parseInt(next, 10); i++; break; case '--lock': opts.lockPath = next; i++; break; case '--blocks-sight-pattern': opts.blocksSightPattern = new RegExp(next); i++; break; case '--pad-px': opts.padPx = parseInt(next, 10); i++; break; case '--schema': opts.schema = next; i++; break; case '--mode': opts.mode = next; i++; break; case '--strip-prefix': opts.stripPrefix = next; i++; break; case '--verbose': opts.verbose = true; break; default: console.error(`unknown arg: ${a}`); process.exit(2); } } return opts; } (async () => { try { const opts = parseArgs(process.argv.slice(2)); const result = await bake(opts); if (opts.mode === 'sprite') { console.log( `OK ${result.atlasId}: ${result.spriteCount} sprites, ` + `${result.boundsW}x${result.boundsH} px atlas` ); } else { console.log( `OK ${result.atlasId}: ${result.tileCount} tiles, ` + `${result.boundsW}x${result.boundsH} px atlas` ); } process.exit(0); } catch (err) { console.error('ERROR:', err.message); if (err.scanErrors) { for (const e of err.scanErrors) console.error(' ', e); } process.exit(1); } })();