52 lines
1.4 KiB
JavaScript
Executable File
52 lines
1.4 KiB
JavaScript
Executable File
#!/usr/bin/env bun
|
|
import { program } from "commander";
|
|
import schema from "./schema";
|
|
import typedef from "./typedef";
|
|
import backup from "./backup";
|
|
import restore from "./restore";
|
|
import exportCmd from "./export";
|
|
import importCmd from "./import";
|
|
import admin from "./admin";
|
|
import init from "../functions/init";
|
|
import { readFileSync } from "fs";
|
|
try {
|
|
init();
|
|
}
|
|
catch (error) {
|
|
console.error(`Initialization ERROR => ${error.message}`);
|
|
process.exit(1);
|
|
}
|
|
/** Resolves to the package root from both src/commands and dist/commands */
|
|
const { version } = JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf-8"));
|
|
/**
|
|
* # Describe Program
|
|
*/
|
|
program
|
|
.name(`bun-sqlite`)
|
|
.description(`SQLite manager for Bun`)
|
|
.version(version);
|
|
/**
|
|
* # Declare Commands
|
|
*/
|
|
program.addCommand(schema());
|
|
program.addCommand(typedef());
|
|
program.addCommand(backup());
|
|
program.addCommand(restore());
|
|
program.addCommand(exportCmd());
|
|
program.addCommand(importCmd());
|
|
program.addCommand(admin());
|
|
/**
|
|
* # Handle Unavailable Commands
|
|
*/
|
|
program.on("command:*", () => {
|
|
console.error("Invalid command: %s\nSee --help for a list of available commands.", program.args.join(" "));
|
|
process.exit(1);
|
|
});
|
|
/**
|
|
* # Parse Arguments
|
|
*/
|
|
program.parseAsync(Bun.argv).catch((error) => {
|
|
console.error(`ERROR => ${error?.message || error}`);
|
|
process.exit(1);
|
|
});
|