@iota-big3/sdk-cli
Version:
CLI tools for School OS SDK
60 lines (50 loc) • 1.99 kB
text/typescript
import { Command } from 'commander';
import chalk from 'chalk';
import { createCommand } from '../src/commands/create';
import { validateCommand } from '../src/commands/validate';
import { migrateCommand } from '../src/commands/migrate';
import { generateCommand } from '../src/commands/generate';
import { watchCommand } from '../src/commands/watch';
// Read version from package.json
import { readFileSync } from 'fs';
import { join } from 'path';
const packageJson = JSON.parse(
readFileSync(join(__dirname, '..', 'package.json'), 'utf-8')
);
const program = new Command();
// ASCII art banner
const banner = `
╔═══════════════════════════════════════════════════╗
║ ║
║ 🎓 School OS SDK CLI v${packageJson.version.padEnd(23)}║
║ Making the right thing the easy thing ║
║ ║
╚═══════════════════════════════════════════════════╝
`;
// Show banner
console.log(chalk.cyan(banner));
program
.name('schoolos')
.description('Industry-agnostic SDK for building microservices')
.version(packageJson.version)
.addHelpText('after', `
${chalk.gray('Examples:')}
$ schoolos create my-service --industry education
$ schoolos validate ./service.yaml
$ schoolos migrate js-to-ts ./src
${chalk.gray('For more information:')}
https://docs.schoolos.dev
`);
// Register commands
program.addCommand(createCommand);
program.addCommand(validateCommand);
program.addCommand(migrateCommand);
program.addCommand(generateCommand);
program.addCommand(watchCommand);
// Parse arguments
program.parse(process.argv);
// Show help if no command provided
if (!process.argv.slice(2).length) {
program.outputHelp();
}