spiegel-keyman/developer/js/source/kmlmc.ts
Marc Durdin 0fbf53f8d7 chore(web): move version from package.json to keyman-version package
Starts to resolve the chaos of putting version numbers into every
package.json file.

Adds a new keyman-version package which mimics the
version information in build-utils.sh. This will eventually replace
resources/web-environment.

Fixes the build for the lexical model compiler tools to remove refs to
package.json version and use keyman-version instead.

More fixes coming in a follow-up.
2022-04-17 06:47:39 +10:00

47 lines
No EOL
1.1 KiB
JavaScript

#!/usr/bin/env node
/**
* kmlmc - Keyman Lexical Model Compiler
*/
/// <reference path="lexical-model-compiler/lexical-model.ts" />
import * as fs from 'fs';
import * as program from 'commander';
import { compileModel } from './util/util';
import { SysExits } from './util/sysexits';
let inputFilename: string;
/// <reference types="@keymanapp/keyman-version" />
/* Arguments */
program
.description('Compiles Keyman lexical models')
.version(KEYMAN_VERSION.VERSION_WITH_TAG)
.arguments('<infile>')
.action(infile => inputFilename = infile)
.option('-o, --outFile <filename>', 'where to save the resultant file');
program.parse(process.argv);
// Deal with input arguments:
if (!inputFilename) {
exitDueToUsageError('Must provide a lexical model source file.');
}
// Compile:
let code = compileModel(inputFilename);
// Output:
if (program.outFile) {
fs.writeFileSync(program.outFile, code, 'utf8');
} else {
console.log(code);
}
function exitDueToUsageError(message: string): never {
console.error(`${program._name}: ${message}`);
console.error();
program.outputHelp();
return process.exit(SysExits.EX_USAGE);
}