painbrush
1.0.21.1.0
packer.ts−
packer.tsDeleted−104
Index: package/packer.ts
===================================================================
--- package/packer.ts
+++ package/packer.ts
@@ -1,104 +0,0 @@
-#!/usr/bin/env node
-
-import { program } from "commander";
-import { writeFile } from "node:fs/promises";
-import { readFile } from "node:fs/promises";
-import chalk from "chalk";
-import {
- printCharacter,
- reportNay,
- reportYay,
-} from "./src-packer/helpers.ts";
-import type {
- FontMetaJSON,
- PackerIntakeData,
-} from "./src-packer/_.js";
-import path from "node:path";
-import {
- generateCharacters,
- generatePxFontFile,
- generateSpecimenImage,
-} from "./src-packer/pipeline.ts";
-
-program.addHelpText(
- "beforeAll",
- `${chalk.cyanBright("> font packer")}
-If you aren't sure how to author a font check out the docs
-or try repacking the bundled ones yourself.
-You can download them from the repo!!
- `,
-);
-program.showHelpAfterError();
-program.requiredOption(
- "-f, --font <font-name>",
- "path to the raw font files, make sure theres a bmp AND a json!!",
-);
-program.option(
- "-o, --out <directory>",
- "path to the output directory, your font will show up there",
- "fonts",
-);
-program.option(
- "-p, --print",
- "Stream the characters into the terminal during parsing",
-);
-program.parse();
-
-const options = program.opts();
-
-/**
- * This needs to be an indexed 1 bit bmp
- * good luck lololololol
- * I used aseprite on indexed color
- */
-
-const fontName = path.parse(options.font.split("/").pop()).name;
-
-const intakeData: PackerIntakeData = await (async () => {
- const cwd = process.cwd();
- const outDir = options.out ?? "fonts";
- const inPath = path.join(cwd, options.font);
- const img = await readFile(inPath + ".bmp");
-
- const fontMeta = JSON.parse(
- (await readFile(inPath + ".json")).toString(),
- ) as FontMetaJSON;
-
- reportYay(`Found bmp, json is valid`);
- return {
- img,
- fontMeta,
- fontName,
- outDir,
- cwd,
- };
-})().catch((e) => {
- reportNay(`JSON/BMP for ${fontName} missing`);
- throw e;
-});
-
-const characters = await generateCharacters(intakeData);
-
-const fontWriteOp = generatePxFontFile(characters, intakeData);
-await writeFile(...fontWriteOp).catch((e) => {
- reportNay(
- `Font out directory does not exist at ${chalk.underline(path.parse(fontWriteOp[0]).dir)}`,
- );
- throw e;
-});
-
-reportYay(`Wrote pxfont file at ${chalk.underline(fontWriteOp[0])}`);
-
-const imageWriteOp = await generateSpecimenImage(
- fontWriteOp,
- intakeData,
-);
-await writeFile(...imageWriteOp);
-
-reportYay(
- `Wrote specimen file at ${chalk.cyan.underline(imageWriteOp[0])} (check it out!)`,
-);
-
-console.log("");
-reportYay(`You can now use ${chalk.yellow(fontName)} as a font`);
-console.log("");