diff options
author | Thomas Tuegel <ttuegel@mailbox.org> | 2020-02-10 10:53:57 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-10 10:53:57 -0600 |
commit | b78092a5511bfedb9b344543d30acb176d2b840d (patch) | |
tree | 22a2d3b6e6f3706485546428467dcbe4302f705e /pkgs/applications | |
parent | 079622ef2d6018de1676f39590c3784c2f1296d0 (diff) | |
parent | 4979541cadc8977c5e98b28ce245be5720422eb5 (diff) |
Merge pull request #78773 from layus/sane-override
sane module: support overriding config files
Diffstat (limited to 'pkgs/applications')
-rw-r--r-- | pkgs/applications/graphics/sane/config.nix | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/pkgs/applications/graphics/sane/config.nix b/pkgs/applications/graphics/sane/config.nix index c0a0206ddd1f1..2ef1e26f5ac6b 100644 --- a/pkgs/applications/graphics/sane/config.nix +++ b/pkgs/applications/graphics/sane/config.nix @@ -6,7 +6,7 @@ with stdenv.lib; let installSanePath = path: '' if [ -e "${path}/lib/sane" ]; then find "${path}/lib/sane" -maxdepth 1 -not -type d | while read backend; do - ln -s "$backend" "$out/lib/sane/$(basename "$backend")" + symlink "$backend" "$out/lib/sane/$(basename "$backend")" done fi @@ -16,14 +16,14 @@ let installSanePath = path: '' if [ "$name" = "dll.conf" ] || [ "$name" = "saned.conf" ] || [ "$name" = "net.conf" ]; then cat "$conf" >> "$out/etc/sane.d/$name" else - ln -s "$conf" "$out/etc/sane.d/$name" + symlink "$conf" "$out/etc/sane.d/$name" fi done fi if [ -e "${path}/etc/sane.d/dll.d" ]; then find "${path}/etc/sane.d/dll.d" -maxdepth 1 -not -type d | while read conf; do - ln -s "$conf" "$out/etc/sane.d/dll.d/$(basename $conf)" + symlink "$conf" "$out/etc/sane.d/dll.d/$(basename $conf)" done fi ''; @@ -33,6 +33,14 @@ stdenv.mkDerivation { phases = "installPhase"; installPhase = '' + function symlink () { + local target=$1 linkname=$2 + if [ -e "$linkname" ]; then + echo "warning: conflict for $linkname. Overriding $(readlink $linkname) with $target." + fi + ln -sfn "$target" "$linkname" + } + mkdir -p $out/etc/sane.d $out/etc/sane.d/dll.d $out/lib/sane '' + concatMapStrings installSanePath paths; } |