mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-31 01:04:25 +00:00
aspellWithDicts: use a single env
Inc0cf19608f
the function `aspellWithDicts` was introduced, that allows to build a derivation consisting of aspell and specified dictionaries. In96457d26dd
a fix was included to properly find the dictionaries. Issue #29429 describes that, while the current method works for the aspell binary, it does not in case of the API. This commit rewrites the wrapper into a single derivation, create a single tree of symbolic references to both the binary and the dictionaries so that its possible to find the dictionaries with the API. Furthermore, the binary is wrapped so it can still find the dictionaries as well.
This commit is contained in:
parent
03fa6965ad
commit
91f7042aa0
@ -4,8 +4,7 @@
|
||||
{ aspell
|
||||
, aspellDicts
|
||||
, makeWrapper
|
||||
, symlinkJoin
|
||||
, runCommand
|
||||
, buildEnv
|
||||
}:
|
||||
|
||||
f:
|
||||
@ -14,22 +13,20 @@ let
|
||||
# Dictionaries we want
|
||||
dicts = f aspellDicts;
|
||||
|
||||
# A tree containing the dictionaries
|
||||
dictEnv = symlinkJoin {
|
||||
name = "aspell-dicts";
|
||||
paths = dicts;
|
||||
};
|
||||
|
||||
in runCommand "aspell-env" {
|
||||
in buildEnv {
|
||||
name = "aspell-env";
|
||||
buildInputs = [ makeWrapper ];
|
||||
} ''
|
||||
# Construct wrappers in /bin
|
||||
mkdir -p $out/bin
|
||||
pushd "${aspell}/bin"
|
||||
for prg in *; do
|
||||
if [ -f "$prg" ]; then
|
||||
makeWrapper "${aspell}/bin/$prg" "$out/bin/$prg" --set ASPELL_CONF "dict-dir ${dictEnv}/lib/aspell"
|
||||
fi
|
||||
done
|
||||
popd
|
||||
''
|
||||
paths = [ aspell ] ++ dicts;
|
||||
postBuild = ''
|
||||
# Construct wrappers in /bin
|
||||
unlink "$out/bin"
|
||||
mkdir -p "$out/bin"
|
||||
pushd "${aspell}/bin"
|
||||
for prg in *; do
|
||||
if [ -f "$prg" ]; then
|
||||
makeWrapper "${aspell}/bin/$prg" "$out/bin/$prg" --set ASPELL_CONF "dict-dir $out/lib/aspell"
|
||||
fi
|
||||
done
|
||||
popd
|
||||
'';
|
||||
}
|
Loading…
Reference in New Issue
Block a user