@remogram/cli
Advanced tools
+2
-1
@@ -28,3 +28,4 @@ import { ERROR_CODES, forgeError } from '@remogram/core'; | ||
| const arg = argv[i]; | ||
| if (arg === '--json') asJson = true; | ||
| if (arg === '--version') flags.version = true; | ||
| else if (arg === '--json') asJson = true; | ||
| else if (arg === '-h' || arg === '--help') flags.help = true; | ||
@@ -31,0 +32,0 @@ else if (arg.startsWith('--')) { |
+6
-1
@@ -76,2 +76,3 @@ import { | ||
| assertCrOpenPublishPreflight, | ||
| composeForgeFactsSection, | ||
| } from '@remogram/core'; | ||
@@ -1274,2 +1275,6 @@ import fs from 'node:fs'; | ||
| } | ||
| if (group === 'evidence' && sub === 'forge-facts') { | ||
| const section = await composeForgeFactsSection(ctx, provider, flags); | ||
| return { __forge_facts_section: true, ...section }; | ||
| } | ||
| if (group === 'contract' && (sub == null || sub === 'export')) { | ||
@@ -1281,3 +1286,3 @@ return dispatchContractExport(flags); | ||
| forgeError: invalidArgsError( | ||
| 'Unknown command. Try: provider capabilities, repo status, refs compare, refs inventory, cr inventory, issue inventory, cr files, cr comments, issue view, issue comments, cr open, issue open, issue bundle, status set, forge changes, forge log ingest, forge log read, forge queue snapshot, diff since, attestation read, verify bind, review bundle, write preview, pr view, pr checks, merge plan, merge execute, sync plan, whoami, branch protection, commit signature, contract --command "<group subcommand>"', | ||
| 'Unknown command. Try: provider capabilities, repo status, refs compare, refs inventory, cr inventory, issue inventory, cr files, cr comments, issue view, issue comments, cr open, issue open, issue bundle, status set, forge changes, forge log ingest, forge log read, forge queue snapshot, diff since, attestation read, verify bind, review bundle, write preview, evidence forge-facts, pr view, pr checks, merge plan, merge execute, sync plan, whoami, branch protection, commit signature, version --json, contract --command "<group subcommand>"', | ||
| { group, sub, flags }, | ||
@@ -1284,0 +1289,0 @@ ), |
+74
-0
@@ -6,2 +6,6 @@ import { | ||
| forgeError, | ||
| buildVersionInfo, | ||
| formatVersionText, | ||
| VersionInfoError, | ||
| versionInfoToForgeError, | ||
| } from '@remogram/core'; | ||
@@ -36,2 +40,66 @@ import { provider as giteaApi } from '@remogram/provider-gitea-api'; | ||
| if (flags.version === true && positional.length === 0) { | ||
| try { | ||
| if (asJson) { | ||
| output(buildVersionInfo(), true); | ||
| } else { | ||
| console.log(formatVersionText()); | ||
| } | ||
| } catch (err) { | ||
| const forgeErr = versionInfoToForgeError(err); | ||
| if (forgeErr) { | ||
| handleError({ message: err.message, forgeError: forgeErr }, null, asJson, errorContext); | ||
| } else { | ||
| throw err; | ||
| } | ||
| } | ||
| return; | ||
| } | ||
| if (group === 'version' && sub == null) { | ||
| const unknownFlag = Object.keys(flags).find((key) => key !== 'help' && flags[key] != null && flags[key] !== false); | ||
| if (unknownFlag && unknownFlag !== 'json') { | ||
| handleError( | ||
| { | ||
| message: 'version accepts only --json or --help', | ||
| forgeError: forgeError(ERROR_CODES.INVALID_ARGS, 'version accepts only --json or --help'), | ||
| }, | ||
| null, | ||
| asJson, | ||
| errorContext, | ||
| ); | ||
| return; | ||
| } | ||
| if (flags.help === true) { | ||
| console.log('Usage: remogram version [--json]\n\nPrint Remogram CLI version (repo-config independent).'); | ||
| return; | ||
| } | ||
| if (!asJson) { | ||
| handleError( | ||
| { | ||
| message: 'version requires --json; use remogram --version for human text', | ||
| forgeError: forgeError( | ||
| ERROR_CODES.INVALID_ARGS, | ||
| 'version requires --json; use remogram --version for human text', | ||
| ), | ||
| }, | ||
| null, | ||
| false, | ||
| errorContext, | ||
| ); | ||
| return; | ||
| } | ||
| try { | ||
| output(buildVersionInfo(), true); | ||
| } catch (err) { | ||
| const forgeErr = versionInfoToForgeError(err); | ||
| if (forgeErr) { | ||
| handleError({ message: err.message, forgeError: forgeErr }, null, asJson, errorContext); | ||
| } else { | ||
| throw err; | ||
| } | ||
| } | ||
| return; | ||
| } | ||
| if (flags.help === true) { | ||
@@ -103,2 +171,8 @@ const helpText = renderCommandHelp(group, sub, positional); | ||
| const packet = await dispatchForgeCommand({ group, sub, flags, positional, ctx, provider }); | ||
| if (packet?.__forge_facts_section) { | ||
| const { __forge_facts_section: _marker, ...section } = packet; | ||
| output(section, asJson); | ||
| if (!section.ok) process.exitCode = 1; | ||
| return; | ||
| } | ||
| output(packet, asJson); | ||
@@ -105,0 +179,0 @@ if (!packet.ok) process.exitCode = 1; |
+7
-7
| { | ||
| "name": "@remogram/cli", | ||
| "version": "0.2.0-beta.5", | ||
| "version": "0.3.0", | ||
| "description": "Remogram forge boundary CLI", | ||
@@ -30,9 +30,9 @@ "type": "module", | ||
| "dependencies": { | ||
| "@remogram/core": "0.2.0-beta.5", | ||
| "@remogram/provider-gitea-api": "0.2.0-beta.5", | ||
| "@remogram/provider-github-api": "0.2.0-beta.5", | ||
| "@remogram/provider-gitlab-api": "0.2.0-beta.5", | ||
| "@remogram/provider-gitea-tea": "0.2.0-beta.5", | ||
| "@remogram/provider-github-gh": "0.2.0-beta.5" | ||
| "@remogram/core": "0.3.0", | ||
| "@remogram/provider-gitea-api": "0.3.0", | ||
| "@remogram/provider-github-api": "0.3.0", | ||
| "@remogram/provider-gitlab-api": "0.3.0", | ||
| "@remogram/provider-gitea-tea": "0.3.0", | ||
| "@remogram/provider-github-gh": "0.3.0" | ||
| } | ||
| } |
81819
2.97%2166
3.74%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated