summary refs log tree commit diff
path: root/pkgs/applications/graphics/sane
diff options
context:
space:
mode:
authorSymphorien Gibol <symphorien+git@xlumurb.eu>2021-02-19 16:49:49 +0100
committerSymphorien Gibol <symphorien+git@xlumurb.eu>2021-02-19 16:52:26 +0100
commitc64fb5000b8da3ac657ffe5d9c7522e56b8768cd (patch)
tree886638e3ae5747e91afaa5769f73299283cff6a1 /pkgs/applications/graphics/sane
parent6b1057b452c55bb3b463f0d7055bc4ec3fd1f381 (diff)
downloadnixpkgs-c64fb5000b8da3ac657ffe5d9c7522e56b8768cd.tar
nixpkgs-c64fb5000b8da3ac657ffe5d9c7522e56b8768cd.tar.gz
nixpkgs-c64fb5000b8da3ac657ffe5d9c7522e56b8768cd.tar.bz2
nixpkgs-c64fb5000b8da3ac657ffe5d9c7522e56b8768cd.tar.lz
nixpkgs-c64fb5000b8da3ac657ffe5d9c7522e56b8768cd.tar.xz
nixpkgs-c64fb5000b8da3ac657ffe5d9c7522e56b8768cd.tar.zst
nixpkgs-c64fb5000b8da3ac657ffe5d9c7522e56b8768cd.zip
nixos/sane: allow to disable enabled-by-default plugins
use case: disabling v4l plugin because I don't use my webcam as a
scanner.
Diffstat (limited to 'pkgs/applications/graphics/sane')
-rw-r--r--pkgs/applications/graphics/sane/config.nix13
1 files changed, 10 insertions, 3 deletions
diff --git a/pkgs/applications/graphics/sane/config.nix b/pkgs/applications/graphics/sane/config.nix
index 304df652f15..397e17837bc 100644
--- a/pkgs/applications/graphics/sane/config.nix
+++ b/pkgs/applications/graphics/sane/config.nix
@@ -1,9 +1,10 @@
 { lib, stdenv }:
 
-{ paths }:
+{ paths, disabledDefaultBackends ? [] }:
 
 with lib;
-let installSanePath = path: ''
+let
+installSanePath = path: ''
       if [ -e "${path}/lib/sane" ]; then
         find "${path}/lib/sane" -maxdepth 1 -not -type d | while read backend; do
           symlink "$backend" "$out/lib/sane/$(basename "$backend")"
@@ -27,6 +28,10 @@ let installSanePath = path: ''
         done
       fi
     '';
+    disableBackend = backend: ''
+      grep -q '${backend}' $out/etc/sane.d/dll.conf || { echo '${backend} is not a default plugin in $SANE_CONFIG_DIR/dll.conf'; exit 1; }
+      substituteInPlace $out/etc/sane.d/dll.conf --replace '${backend}' '# ${backend} disabled in nixos config'
+    '';
 in
 stdenv.mkDerivation {
   name = "sane-config";
@@ -42,5 +47,7 @@ stdenv.mkDerivation {
     }
 
     mkdir -p $out/etc/sane.d $out/etc/sane.d/dll.d $out/lib/sane
-  '' + concatMapStrings installSanePath paths;
+  ''
+  + (concatMapStrings installSanePath paths)
+  + (concatMapStrings disableBackend disabledDefaultBackends);
 }