nixos/sane: allow to disable enabled-by-default plugins
use case: disabling v4l plugin because I don't use my webcam as a scanner.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user