mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2025-01-19 17:46:46 +02:00
nix flake update
add deprecation warnings.
This builds on #8817, to add additional UX help for people with existing muscle memory (or shell history) with --update-input and tries to gently guide them towards the newly evolved CLI UI. Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
This commit is contained in:
parent
f25c06d7a3
commit
f56401a114
2 changed files with 31 additions and 1 deletions
|
@ -47,6 +47,16 @@ MixFlakeOptions::MixFlakeOptions()
|
||||||
{
|
{
|
||||||
auto category = "Common flake-related options";
|
auto category = "Common flake-related options";
|
||||||
|
|
||||||
|
addFlag({
|
||||||
|
.longName = "recreate-lock-file",
|
||||||
|
.description = "Recreate the flake's lock file from scratch.",
|
||||||
|
.category = category,
|
||||||
|
.handler = {[&]() {
|
||||||
|
lockFlags.recreateLockFile = true;
|
||||||
|
warn("'--recreate-lock-file' is deprecated and will be removed in a future version; use 'nix flake update' instead.");
|
||||||
|
}}
|
||||||
|
});
|
||||||
|
|
||||||
addFlag({
|
addFlag({
|
||||||
.longName = "no-update-lock-file",
|
.longName = "no-update-lock-file",
|
||||||
.description = "Do not allow any updates to the flake's lock file.",
|
.description = "Do not allow any updates to the flake's lock file.",
|
||||||
|
@ -79,6 +89,20 @@ MixFlakeOptions::MixFlakeOptions()
|
||||||
.handler = {&lockFlags.commitLockFile, true}
|
.handler = {&lockFlags.commitLockFile, true}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
addFlag({
|
||||||
|
.longName = "update-input",
|
||||||
|
.description = "Update a specific flake input (ignoring its previous entry in the lock file).",
|
||||||
|
.category = category,
|
||||||
|
.labels = {"input-path"},
|
||||||
|
.handler = {[&](std::string s) {
|
||||||
|
warn("'--update-input' is a deprecated alias for 'flake update' and will be removed in a future version.");
|
||||||
|
lockFlags.inputUpdates.insert(flake::parseInputPath(s));
|
||||||
|
}},
|
||||||
|
.completer = {[&](AddCompletions & completions, size_t, std::string_view prefix) {
|
||||||
|
completeFlakeInputPath(completions, getEvalState(), getFlakeRefsForCompletion(), prefix);
|
||||||
|
}}
|
||||||
|
});
|
||||||
|
|
||||||
addFlag({
|
addFlag({
|
||||||
.longName = "override-input",
|
.longName = "override-input",
|
||||||
.description = "Override a specific flake input (e.g. `dwarffs/nixpkgs`). This implies `--no-write-lock-file`.",
|
.description = "Override a specific flake input (e.g. `dwarffs/nixpkgs`). This implies `--no-write-lock-file`.",
|
||||||
|
|
|
@ -89,7 +89,13 @@ public:
|
||||||
.label="inputs",
|
.label="inputs",
|
||||||
.optional=true,
|
.optional=true,
|
||||||
.handler={[&](std::string inputToUpdate){
|
.handler={[&](std::string inputToUpdate){
|
||||||
auto inputPath = flake::parseInputPath(inputToUpdate);
|
InputPath inputPath;
|
||||||
|
try {
|
||||||
|
inputPath = flake::parseInputPath(inputToUpdate);
|
||||||
|
} catch (Error & e) {
|
||||||
|
warn("Invalid flake input '%s'. To update a specific flake, use 'nix flake update --flake %s' instead.", inputToUpdate, inputToUpdate);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
if (lockFlags.inputUpdates.contains(inputPath))
|
if (lockFlags.inputUpdates.contains(inputPath))
|
||||||
warn("Input '%s' was specified multiple times. You may have done this by accident.");
|
warn("Input '%s' was specified multiple times. You may have done this by accident.");
|
||||||
lockFlags.inputUpdates.insert(inputPath);
|
lockFlags.inputUpdates.insert(inputPath);
|
||||||
|
|
Loading…
Reference in a new issue