diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2017-06-16 15:52:46 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2017-07-17 10:17:20 +0200 |
commit | c0cf19608faf447d4b78f77ff36a770462b19a22 (patch) | |
tree | 8866975a989f58a4defcad35d6031c9ffd6819df /pkgs/development/libraries/aspell | |
parent | 1d78df27294017d464e60bf9b0595e7e42cfca55 (diff) |
aspellWithDicts: create derivation with aspell and selected dictionaries
Currently, `aspell` checks the active profiles for dictionaries. While
this may be convenient, it does not work with `nix-shell` and it doesn't
allow any isolation.
This commit adds the possibility to use composition by creating a
derivation with `symlinkJoin` that contains all the chosen dictionaries,
and another derivation that wraps the executables linking to the dictionaries.
Nix example:
my_aspell = aspellWithDicts(ps: with ps; [ en nl ])
`nix-shell` example:
nix-shell -p 'aspellWithDicts(ps: with ps; [ en nl ])'
Diffstat (limited to 'pkgs/development/libraries/aspell')
-rw-r--r-- | pkgs/development/libraries/aspell/aspell-with-dicts.nix | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/pkgs/development/libraries/aspell/aspell-with-dicts.nix b/pkgs/development/libraries/aspell/aspell-with-dicts.nix new file mode 100644 index 000000000000..eb96070f4fd7 --- /dev/null +++ b/pkgs/development/libraries/aspell/aspell-with-dicts.nix @@ -0,0 +1,35 @@ +# Create a derivation that contains aspell and selected dictionaries. +# Composition is done using `pkgs.buildEnv`. + +{ aspell +, aspellDicts +, makeWrapper +, symlinkJoin +, runCommand +}: + +f: + +let + # Dictionaries we want + dicts = f aspellDicts; + + # A tree containing the dictionaries + dictEnv = symlinkJoin { + name = "aspell-dicts"; + paths = dicts; + }; + +in runCommand "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 "data-dir ${dictEnv}/lib/aspell" + fi + done + popd +'' |