aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix')
-rw-r--r--nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix71
1 files changed, 71 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix b/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix
new file mode 100644
index 00000000000..6bf31982b71
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4_etc_files.nix
@@ -0,0 +1,71 @@
+{ stdenv, lib, brscan4, netDevices ? [] }:
+
+/*
+
+Testing
+-------
+
+No net devices:
+
+~~~
+nix-shell -E 'with import <nixpkgs> { }; brscan4-etc-files'
+~~~
+
+Two net devices:
+
+~~~
+nix-shell -E 'with import <nixpkgs> { }; brscan4-etc-files.override{netDevices=[{name="a"; model="MFC-7860DW"; nodename="BRW0080927AFBCE";} {name="b"; model="MFC-7860DW"; ip="192.168.1.2";}];}'
+~~~
+
+*/
+
+with lib;
+
+let
+
+ addNetDev = nd: ''
+ brsaneconfig4 -a \
+ name="${nd.name}" \
+ model="${nd.model}" \
+ ${if (hasAttr "nodename" nd && nd.nodename != null) then
+ ''nodename="${nd.nodename}"'' else
+ ''ip="${nd.ip}"''}'';
+ addAllNetDev = xs: concatStringsSep "\n" (map addNetDev xs);
+in
+
+stdenv.mkDerivation {
+
+ name = "brscan4-etc-files-0.4.3-3";
+ src = "${brscan4}/opt/brother/scanner/brscan4";
+
+ nativeBuildInputs = [ brscan4 ];
+
+ dontConfigure = true;
+
+ buildPhase = ''
+ TARGET_DIR="$out/etc/opt/brother/scanner/brscan4"
+ mkdir -p "$TARGET_DIR"
+ cp -rp "./models4" "$TARGET_DIR"
+ cp -rp "./Brsane4.ini" "$TARGET_DIR"
+ cp -rp "./brsanenetdevice4.cfg" "$TARGET_DIR"
+
+ export BRSANENETDEVICE4_CFG_FILENAME="$TARGET_DIR/brsanenetdevice4.cfg"
+
+ printf '${addAllNetDev netDevices}\n'
+
+ ${addAllNetDev netDevices}
+ '';
+
+ installPhase = ":";
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ meta = {
+ description = "Brother brscan4 sane backend driver etc files";
+ homepage = http://www.brother.com;
+ platforms = stdenv.lib.platforms.linux;
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ jraygauthier ];
+ };
+}