Improve help-message for nix-repl

* Remove obsolete `printHelp` function
* Add an example to demonstrate how to list all available commands
  within the REPL
This commit is contained in:
Maximilian Bosch 2020-05-01 23:32:01 +02:00
parent c089c52d5f
commit 2aeb874e83
No known key found for this signature in database
GPG key ID: 091DBF4D1FC46B8E

View file

@ -82,40 +82,6 @@ struct NixRepl : gc
}; };
void printHelp()
{
std::cout
<< "Usage: nix-repl [--help] [--version] [-I path] paths...\n"
<< "\n"
<< "nix-repl is a simple read-eval-print loop (REPL) for the Nix package manager.\n"
<< "\n"
<< "Options:\n"
<< " --help\n"
<< " Prints out a summary of the command syntax and exits.\n"
<< "\n"
<< " --version\n"
<< " Prints out the Nix version number on standard output and exits.\n"
<< "\n"
<< " -I path\n"
<< " Add a path to the Nix expression search path. This option may be given\n"
<< " multiple times. See the NIX_PATH environment variable for information on\n"
<< " the semantics of the Nix search path. Paths added through -I take\n"
<< " precedence over NIX_PATH.\n"
<< "\n"
<< " paths...\n"
<< " A list of paths to files containing Nix expressions which nix-repl will\n"
<< " load and add to its scope.\n"
<< "\n"
<< " A path surrounded in < and > will be looked up in the Nix expression search\n"
<< " path, as in the Nix language itself.\n"
<< "\n"
<< " If an element of paths starts with http:// or https://, it is interpreted\n"
<< " as the URL of a tarball that will be downloaded and unpacked to a temporary\n"
<< " location. The tarball must include a single top-level directory containing\n"
<< " at least a file named default.nix.\n";
}
string removeWhitespace(string s) string removeWhitespace(string s)
{ {
s = chomp(s); s = chomp(s);
@ -809,6 +775,16 @@ struct CmdRepl : StoreCommand, MixEvalArgs
return "start an interactive environment for evaluating Nix expressions"; return "start an interactive environment for evaluating Nix expressions";
} }
Examples examples() override
{
return {
Example{
"Display all special commands within the REPL:",
"nix repl\n nix-repl> :?"
}
};
}
void run(ref<Store> store) override void run(ref<Store> store) override
{ {
auto repl = std::make_unique<NixRepl>(searchPath, openStore()); auto repl = std::make_unique<NixRepl>(searchPath, openStore());