forked from lix-project/lix
Merge pull request #9809 from obsidiansystems/nix-store-add-algo
Add missing `--hash-algo` flag to `nix store add`
This commit is contained in:
commit
9b896bf7e9
7
doc/manual/rl-next/nix-store-add.md
Normal file
7
doc/manual/rl-next/nix-store-add.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
---
|
||||||
|
synopsis: Give `nix store add` a `--hash-algo` flag
|
||||||
|
prs: 9809
|
||||||
|
---
|
||||||
|
|
||||||
|
Adds a missing feature that was present in the old CLI, and matches our
|
||||||
|
plans to have similar flags for `nix hash convert` and `hash hash path`.
|
|
@ -22,6 +22,7 @@ struct CmdAddToStore : MixDryRun, StoreCommand
|
||||||
Path path;
|
Path path;
|
||||||
std::optional<std::string> namePart;
|
std::optional<std::string> namePart;
|
||||||
ContentAddressMethod caMethod = FileIngestionMethod::Recursive;
|
ContentAddressMethod caMethod = FileIngestionMethod::Recursive;
|
||||||
|
HashAlgorithm hashAlgo = HashAlgorithm::SHA256;
|
||||||
|
|
||||||
CmdAddToStore()
|
CmdAddToStore()
|
||||||
{
|
{
|
||||||
|
@ -51,6 +52,8 @@ struct CmdAddToStore : MixDryRun, StoreCommand
|
||||||
this->caMethod = parseIngestionMethod(s);
|
this->caMethod = parseIngestionMethod(s);
|
||||||
}},
|
}},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
addFlag(Flag::mkHashAlgoFlag("hash-algo", &hashAlgo));
|
||||||
}
|
}
|
||||||
|
|
||||||
void run(ref<Store> store) override
|
void run(ref<Store> store) override
|
||||||
|
@ -63,9 +66,9 @@ struct CmdAddToStore : MixDryRun, StoreCommand
|
||||||
|
|
||||||
auto storePath = dryRun
|
auto storePath = dryRun
|
||||||
? store->computeStorePath(
|
? store->computeStorePath(
|
||||||
*namePart, accessor, path2, caMethod, HashAlgorithm::SHA256, {}).first
|
*namePart, accessor, path2, caMethod, hashAlgo, {}).first
|
||||||
: store->addToStoreSlow(
|
: store->addToStoreSlow(
|
||||||
*namePart, accessor, path2, caMethod, HashAlgorithm::SHA256, {}).path;
|
*namePart, accessor, path2, caMethod, hashAlgo, {}).path;
|
||||||
|
|
||||||
logger->cout("%s", store->printStorePath(storePath));
|
logger->cout("%s", store->printStorePath(storePath));
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,9 +37,11 @@ clearStore
|
||||||
path3=$(nix store add-path ./dummy)
|
path3=$(nix store add-path ./dummy)
|
||||||
[[ "$path1" == "$path2" ]]
|
[[ "$path1" == "$path2" ]]
|
||||||
[[ "$path1" == "$path3" ]]
|
[[ "$path1" == "$path3" ]]
|
||||||
|
path4=$(nix store add --mode nar --hash-algo sha1 ./dummy)
|
||||||
)
|
)
|
||||||
(
|
(
|
||||||
path1=$(nix store add --mode flat ./dummy)
|
path1=$(nix store add --mode flat ./dummy)
|
||||||
path2=$(nix store add-file ./dummy)
|
path2=$(nix store add-file ./dummy)
|
||||||
[[ "$path1" == "$path2" ]]
|
[[ "$path1" == "$path2" ]]
|
||||||
|
path4=$(nix store add --mode flat --hash-algo sha1 ./dummy)
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue