Respect command registrations in plugins.

This commit is contained in:
Shea Levy 2021-01-28 10:04:47 -05:00
parent 98d1b64400
commit f6c5b05488
No known key found for this signature in database
GPG key ID: 5C0BD6957D86FE27
3 changed files with 9 additions and 2 deletions

View file

@ -5,3 +5,4 @@
to any command, including a subcommand to `nix`. For example, to any command, including a subcommand to `nix`. For example,
`nix-instantiate default.nix --plugin-files ""` must now become `nix-instantiate default.nix --plugin-files ""` must now become
`nix-instantiate --plugin-files "" default.nix`. `nix-instantiate --plugin-files "" default.nix`.
- Plugins that add new `nix` subcommands are now actually respected.

View file

@ -306,8 +306,8 @@ Strings argvToStrings(int argc, char * * argv)
return args; return args;
} }
MultiCommand::MultiCommand(const Commands & commands) MultiCommand::MultiCommand(const Commands & commands_)
: commands(commands) : commands(commands_)
{ {
expectArgs({ expectArgs({
.label = "subcommand", .label = "subcommand",

View file

@ -159,6 +159,12 @@ struct NixArgs : virtual MultiCommand, virtual MixCommonArgs
#include "nix.md" #include "nix.md"
; ;
} }
// Plugins may add new subcommands.
void pluginsInited() override
{
commands = RegisterCommand::getCommandsFor({});
}
}; };
static void showHelp(std::vector<std::string> subcommand) static void showHelp(std::vector<std::string> subcommand)