at 23.11-pre 2.0 kB view raw
1{ stdenv, lib, brscan5, netDevices ? [] }: 2 3/* 4 5Testing 6------- 7From nixpkgs repo 8 9No net devices: 10 11~~~ 12nix-build -E 'let pkgs = import ./. {}; 13 brscan5-etc-files = pkgs.callPackage (import ./nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix) {}; 14 in brscan5-etc-files' 15~~~ 16 17Two net devices: 18 19~~~ 20nix-build -E 'let pkgs = import ./. {}; 21 brscan5-etc-files = pkgs.callPackage (import ./nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix) {}; 22 in brscan5-etc-files.override { 23 netDevices = [ 24 {name="a"; model="ADS-1200"; nodename="BRW0080927AFBCE";} 25 {name="b"; model="ADS-1200"; ip="192.168.1.2";} 26 ]; 27 }' 28~~~ 29 30*/ 31 32let 33 34 addNetDev = nd: '' 35 brsaneconfig5 -a \ 36 name="${nd.name}" \ 37 model="${nd.model}" \ 38 ${if (lib.hasAttr "nodename" nd && nd.nodename != null) then 39 ''nodename="${nd.nodename}"'' else 40 ''ip="${nd.ip}"''}''; 41 addAllNetDev = xs: lib.concatStringsSep "\n" (map addNetDev xs); 42in 43 44stdenv.mkDerivation { 45 46 name = "brscan5-etc-files"; 47 version = "1.2.6-0"; 48 src = "${brscan5}/opt/brother/scanner/brscan5"; 49 50 nativeBuildInputs = [ brscan5 ]; 51 52 dontConfigure = true; 53 54 buildPhase = '' 55 TARGET_DIR="$out/etc/opt/brother/scanner/brscan5" 56 mkdir -p "$TARGET_DIR" 57 cp -rp "./models" "$TARGET_DIR" 58 cp -rp "./brscan5.ini" "$TARGET_DIR" 59 cp -rp "./brsanenetdevice.cfg" "$TARGET_DIR" 60 61 export NIX_REDIRECTS="/etc/opt/brother/scanner/brscan5/=$TARGET_DIR/" 62 63 printf '${addAllNetDev netDevices}\n' 64 65 ${addAllNetDev netDevices} 66 ''; 67 68 dontInstall = true; 69 70 meta = with lib; { 71 description = "Brother brscan5 sane backend driver etc files"; 72 homepage = "https://www.brother.com"; 73 platforms = platforms.linux; 74 license = licenses.unfree; 75 maintainers = with maintainers; [ mattchrist ]; 76 }; 77}