diff --git a/cli/main.ts b/cli/main.ts index beef998..42adbf0 100644 --- a/cli/main.ts +++ b/cli/main.ts @@ -1,5 +1,5 @@ import 'dotenv/config'; -import { Command } from 'commander'; +import { Command, Option } from '@commander-js/extra-typings'; import { applyParamsToScript, Constr, @@ -41,13 +41,23 @@ const app = new Command(); app.name('fortuna').description('Fortuna miner').version('0.0.1'); +const kupoUrlOption = new Option('-k, --kupo-url ', 'Kupo URL') + .env('KUPO_URL') + .makeOptionMandatory(true); + +const ogmiosUrlOption = new Option('-o, --ogmios-url ', 'Ogmios URL') + .env('OGMIOS_URL') + .makeOptionMandatory(true); + +const previewOption = new Option('-p, --preview', 'Use testnet').default(false); + app .command('mine') .description('Start the miner') - // .env('KUPO_URL=', 'Kupo URL', { required: true }) - // .env('OGMIOS_URL=', 'Ogmios URL', { required: true }) - .option('-p, --preview', 'Use testnet') - .action(async ({ preview, ogmiosUrl, kupoUrl }) => { + .addOption(kupoUrlOption) + .addOption(ogmiosUrlOption) + .addOption(previewOption) + .action(async ({ preview, kupoUrl, ogmiosUrl }) => { while (true) { const genesisFile = fs.readFileSync(`genesis/${preview ? 'preview' : 'mainnet'}.json`, { encoding: 'utf8' @@ -256,9 +266,9 @@ app app .command('genesis') .description('Create block 0') - // .env('KUPO_URL=', 'Kupo URL', { required: true }) - // .env('OGMIOS_URL=', 'Ogmios URL', { required: true }) - .option('-p, --preview', 'Use testnet') + .addOption(kupoUrlOption) + .addOption(ogmiosUrlOption) + .addOption(previewOption) .action(async ({ preview, ogmiosUrl, kupoUrl }) => { const unAppliedValidator = readValidator(); @@ -368,9 +378,9 @@ app app .command('address') .description('Check address balance') - // .env('KUPO_URL=', 'Kupo URL', { required: true }) - // .env('OGMIOS_URL=', 'Ogmios URL', { required: true }) - .option('-p, --preview', 'Use testnet') + .addOption(kupoUrlOption) + .addOption(ogmiosUrlOption) + .addOption(previewOption) .action(async ({ preview, ogmiosUrl, kupoUrl }) => { const provider = new Kupmios(kupoUrl, ogmiosUrl); const lucid = await Translucent.new(provider, preview ? 'Preview' : 'Mainnet'); diff --git a/package.json b/package.json index 2415100..cb76f39 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "cli": "tsx cli/main.ts" }, "devDependencies": { + "@commander-js/extra-typings": "^12.0.1", "@playwright/test": "^1.28.1", "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/kit": "^2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6fed414..2f1e433 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,6 +10,9 @@ dependencies: version: git@github.com+txpipe/translucent/05847b9f22979818d7a65afe15a9b74eca24faaf(typescript@5.3.3) devDependencies: + '@commander-js/extra-typings': + specifier: ^12.0.1 + version: 12.0.1(commander@12.0.0) '@playwright/test': specifier: ^1.28.1 version: 1.41.2 @@ -168,6 +171,14 @@ packages: tslib: 2.6.2 dev: false + /@commander-js/extra-typings@12.0.1(commander@12.0.0): + resolution: {integrity: sha512-OvkMobb1eMqOCuJdbuSin/KJkkZr7n24/UNV+Lcz/0Dhepf3r2p9PaGwpRpAWej7A+gQnny4h8mGhpFl4giKkg==} + peerDependencies: + commander: ~12.0.0 + dependencies: + commander: 12.0.0 + dev: true + /@dcspark/cardano-multiplatform-lib-browser@3.1.2: resolution: {integrity: sha512-BDIF33nqEKAGn72+ESD1fLgnWCZJbPWnVKHr0cy7Al2zhvM30rGsajcJNHLPh2XXZQh1H35fBiHHR2uUyZRRpw==} dev: false