32 lines
793 B
JavaScript
32 lines
793 B
JavaScript
#!/usr/bin/env node
|
|
import fs from "node:fs";
|
|
import {
|
|
packageDescriptorToJson,
|
|
parsePackageDescriptorTextproto,
|
|
validatePackageDescriptor,
|
|
} from "./descriptor.js";
|
|
|
|
const usage = (): never => {
|
|
console.error("Usage: quixos-descriptor-check <descriptor.txtpb>");
|
|
process.exit(1);
|
|
};
|
|
|
|
const path = process.argv[2] ?? usage();
|
|
|
|
try {
|
|
const descriptor = parsePackageDescriptorTextproto(
|
|
fs.readFileSync(path, "utf8"),
|
|
);
|
|
const errors = validatePackageDescriptor(descriptor);
|
|
if (errors.length > 0) {
|
|
for (const error of errors) {
|
|
console.error(error);
|
|
}
|
|
process.exit(1);
|
|
}
|
|
process.stdout.write(`${packageDescriptorToJson(descriptor)}\n`);
|
|
} catch (error) {
|
|
console.error(error instanceof Error ? error.message : String(error));
|
|
process.exit(1);
|
|
}
|