From 6c651604f47d9d7bcb32dd5ffa4f863d9d70df8c Mon Sep 17 00:00:00 2001 From: Guillaume Maudoux Date: Wed, 29 Jan 2020 15:15:04 +0100 Subject: [PATCH 1/2] sane module: support overriding config files --- pkgs/applications/graphics/sane/config.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/graphics/sane/config.nix b/pkgs/applications/graphics/sane/config.nix index c0a0206ddd1..e134391f58c 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." + fi + ln -sfn "$target" "$linkname" + } + mkdir -p $out/etc/sane.d $out/etc/sane.d/dll.d $out/lib/sane '' + concatMapStrings installSanePath paths; } From 4979541cadc8977c5e98b28ce245be5720422eb5 Mon Sep 17 00:00:00 2001 From: Guillaume Maudoux Date: Mon, 10 Feb 2020 17:28:37 +0100 Subject: [PATCH 2/2] sane module: make warning more explicit --- pkgs/applications/graphics/sane/config.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/sane/config.nix b/pkgs/applications/graphics/sane/config.nix index e134391f58c..2ef1e26f5ac 100644 --- a/pkgs/applications/graphics/sane/config.nix +++ b/pkgs/applications/graphics/sane/config.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation { function symlink () { local target=$1 linkname=$2 if [ -e "$linkname" ]; then - echo "warning: conflict for $linkname. Overriding." + echo "warning: conflict for $linkname. Overriding $(readlink $linkname) with $target." fi ln -sfn "$target" "$linkname" }