UNPKG

@primexop/pbk

Version:

Primexop Backend Kit - A powerful TypeScript utility for managing backend projects with features like B2F Portal integration, cross-project validation, and Next.js support

84 lines (83 loc) 3.19 kB
#!/usr/bin/env node import { program } from 'commander'; import { deleteAllRepos } from '../cli/deleteAllRepos.js'; import { deployAllRepos } from '../cli/deployAllRepos.js'; import { gitAcpAllRepos } from '../cli/gitAcpAllRepos.js'; import { gitPushAllRepos } from '../cli/gitPushAllRepos.js'; import { transfer2Shared } from '../cli/transfer2Shared.js'; import { initConfig } from '../cli/initConfig.js'; import { fixConfigFile } from '../cli/fixConfigFile.js'; import { createInitWorkspaceShellFile } from '../cli/createInitWorkspaceShellFile.js'; import { addDevVersion } from '../cli/addDevVersion.js'; import { addProdVersion } from '../cli/addProdVersion.js'; import '../utils/progress.js'; import packageJson from '../../package.json' with { type: "json" }; program .name('pbk') .version(packageJson.version) .description('PrimeXOP Backend Kit - CLI Tool'); program .command('init') .description('Initialize an empty pbk.config.json file in the project root') .action(async () => { await initConfig(); }); program .command('delete-all-repos') .description('Delete b2fPortal directory in all repositories') .action(async () => { await deleteAllRepos(); }); program .command('deploy-all-repos') .description('Deploy all repositories') .action(async () => { await deployAllRepos(); }); program .command('git-acp-all-repos') .description('Add, commit, and push changes in all repositories') .action(async () => { await gitAcpAllRepos(); }); program .command('git-push-all-repos') .description('Push b2fPortal changes in all repositories') .action(async () => { await gitPushAllRepos(); }); program .command('fix-config-file') .description('Fix JSON files by adding double quotes to keys and removing trailing commas') .option('-p, --path <path>', 'Path to the JSON file to fix (defaults to pbk.config.json)') .action(async (options) => { await fixConfigFile(options.path); }); program .command('transfer-2-shared') .description('Transfer project files to shared backend repositories') .action(async () => { await transfer2Shared(); }); program .command('create-init-workspace-shell-file') .description('Create a shell script to initialize and open project workspaces') .action(async () => { await createInitWorkspaceShellFile(); }); program .command('add-dev-version') .description('Update package.json to use local development version of @primexop/pbk and run npm install') .option('-d, --dir <directory>', 'Target directory containing package.json (defaults to current directory)') .action(async (options) => { await addDevVersion(options.dir); }); program .command('add-prod-version') .description('Update package.json to use published version of @primexop/pbk and run npm install') .option('-d, --dir <directory>', 'Target directory containing package.json (defaults to current directory)') .option('-v, --version <version>', 'Specific version to use (defaults to latest)') .action(async (options) => { await addProdVersion(options.dir, options.version); }); program.parseAsync(process.argv);