fix(installer): close --tools "" bypass and drop hardcoded tool count
- Replace truthy `if (options.tools)` guard with `!== undefined` in both upgrade and fresh-install branches. Empty string now reaches _parseToolsFlag and produces the specific "passed empty" error instead of falling through to a generic message (fresh-install) or being silently ignored (existing-install). - Drop the hardcoded "42 supported tools" count from the prereqs in install-bmad.md so the doc doesn't drift as platform-codes.yaml changes. Addresses augment / coderabbit review on #2346.
This commit is contained in:
parent
bbdefb4269
commit
9962f3ca0d
|
|
@ -18,7 +18,7 @@ Use `npx bmad-method install` to set up BMad in your project. One command handle
|
||||||
|
|
||||||
- **Node.js** 20+ (the installer requires it)
|
- **Node.js** 20+ (the installer requires it)
|
||||||
- **Git** (for cloning external modules)
|
- **Git** (for cloning external modules)
|
||||||
- **An AI tool** such as Claude Code or Cursor (run `npx bmad-method install --list-tools` to see all 42 supported tools)
|
- **An AI tool** such as Claude Code or Cursor (run `npx bmad-method install --list-tools` to see all supported tools)
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -469,7 +469,9 @@ class UI {
|
||||||
const allTools = [...preferredIdes, ...otherIdes];
|
const allTools = [...preferredIdes, ...otherIdes];
|
||||||
|
|
||||||
// Non-interactive: handle --tools and --yes flags before interactive prompt
|
// Non-interactive: handle --tools and --yes flags before interactive prompt
|
||||||
if (options.tools) {
|
// Use !== undefined so an explicit --tools "" falls through to _parseToolsFlag and
|
||||||
|
// gets a specific "passed empty" error instead of being silently ignored.
|
||||||
|
if (options.tools !== undefined) {
|
||||||
const selectedIdes = this._parseToolsFlag(options.tools, allKnownValues);
|
const selectedIdes = this._parseToolsFlag(options.tools, allKnownValues);
|
||||||
await prompts.log.info(`Using tools from command-line: ${selectedIdes.join(', ')}`);
|
await prompts.log.info(`Using tools from command-line: ${selectedIdes.join(', ')}`);
|
||||||
await this.displaySelectedTools(selectedIdes, preferredIdes, allTools);
|
await this.displaySelectedTools(selectedIdes, preferredIdes, allTools);
|
||||||
|
|
@ -546,8 +548,9 @@ class UI {
|
||||||
|
|
||||||
let selectedIdes = [];
|
let selectedIdes = [];
|
||||||
|
|
||||||
// Check if tools are provided via command-line
|
// Check if tools are provided via command-line.
|
||||||
if (options.tools) {
|
// Use !== undefined so an explicit --tools "" still hits _parseToolsFlag's empty-value error.
|
||||||
|
if (options.tools !== undefined) {
|
||||||
selectedIdes = this._parseToolsFlag(options.tools, allKnownValues);
|
selectedIdes = this._parseToolsFlag(options.tools, allKnownValues);
|
||||||
await prompts.log.info(`Using tools from command-line: ${selectedIdes.join(', ')}`);
|
await prompts.log.info(`Using tools from command-line: ${selectedIdes.join(', ')}`);
|
||||||
await this.displaySelectedTools(selectedIdes, preferredIdes, allTools);
|
await this.displaySelectedTools(selectedIdes, preferredIdes, allTools);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue