From 97bd06f03ddccaba03cf7635a3a5c25d547aa404 Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 22 Jan 2017 23:41:01 +0100 Subject: m omo: add shared printer --- makefu/2configs/git/brain-retiolum.nix | 67 ---------------------------------- makefu/2configs/printer-shared.nix | 38 +++++++++++++++++++ 2 files changed, 38 insertions(+), 67 deletions(-) delete mode 100644 makefu/2configs/git/brain-retiolum.nix create mode 100644 makefu/2configs/printer-shared.nix (limited to 'makefu/2configs') diff --git a/makefu/2configs/git/brain-retiolum.nix b/makefu/2configs/git/brain-retiolum.nix deleted file mode 100644 index b637ca03..00000000 --- a/makefu/2configs/git/brain-retiolum.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ config, lib, pkgs, ... }: -# TODO: remove tv lib :) -with import ; -let - - repos = priv-repos // krebs-repos ; - rules = concatMap krebs-rules (attrValues krebs-repos) ++ concatMap priv-rules (attrValues priv-repos); - - krebs-repos = mapAttrs make-krebs-repo { - brain = { }; - }; - - priv-repos = mapAttrs make-priv-repo { - autosync = { }; - pass = { }; - }; - - # TODO move users to separate module - make-priv-repo = name: { ... }: { - inherit name; - public = false; - }; - - make-krebs-repo = with git; name: { ... }: { - inherit name; - public = false; - hooks = { - post-receive = pkgs.git-hooks.irc-announce { - nick = config.networking.hostName; - channel = "#retiolum"; - # TODO remove the hardcoded hostname - server = "ni.r"; - }; - }; - }; - - set-owners = with git;repo: user: - singleton { - inherit user; - repo = [ repo ]; - perm = push "refs/*" [ non-fast-forward create delete merge ]; - }; - - set-ro-access = with git; repo: user: - singleton { - inherit user; - repo = [ repo ]; - perm = fetch; - }; - - # TODO: get the list of all krebsministers - krebsminister = with config.krebs.users; [ lass tv ]; - all-makefu = with config.krebs.users; [ makefu makefu-omo makefu-tsp ]; - - priv-rules = repo: set-owners repo all-makefu; - - krebs-rules = repo: - set-owners repo all-makefu ++ set-ro-access repo krebsminister; - -in { - imports = [ ]; - krebs.git = { - enable = true; - cgit.enable = false; - inherit repos rules; - }; -} diff --git a/makefu/2configs/printer-shared.nix b/makefu/2configs/printer-shared.nix new file mode 100644 index 00000000..2a9e6724 --- /dev/null +++ b/makefu/2configs/printer-shared.nix @@ -0,0 +1,38 @@ +{ pkgs, config, ... }: + +{ + nixpkgs.config.allowUnfree = true; + services.avahi.enable = true; + services.avahi.publish.enable = true; + services.avahi.publish.userServices = true; + services.avahi.interfaces = [ config.makefu.server.primary-itf ]; + services.avahi.ipv6 = false; + services.avahi.nssmdns = true; + # via https://github.com/tjfontaine/airprint-generate/ + # environment.etc."avahi/services/samsung_scx2300.service".text + nixpkgs.config.packageOverrides = pkgs: rec { + avahi = pkgs.stdenv.lib.overrideDerivation pkgs.avahi (oldAttrs: { + postFixup = let + cfg = pkgs.writeText "airprint-scx3200.service" ''AirPrint Samsung_SCX-3200_Series @ %h_ipp._tcp_universal._sub._ipp._tcp631txtvers=1qtotal=1Transparent=TURF=nonerp=printers/Samsung_SCX-3200_Seriesnote=Samsung SCX-3200 Seriesproduct=(GPL Ghostscript)printer-state=3printer-type=0x801044pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-command''; + in '' + cp ${cfg} $out/etc/avahi/services/airprint-scx3200.service + ''; + }); + }; + + # only allowed in local network + services.printing = { + enable = true; + browsing = true; + #avahiEnabled = true; + defaultShared = true; + listenAddresses = [ "*:631" ]; + drivers = [ + pkgs.samsungUnifiedLinuxDriver + ]; + }; + + # scanners are printers just in reverse anyway + hardware.sane.enable = true; + hardware.sane.extraBackends = [ pkgs.samsungUnifiedLinuxDriver ]; +} -- cgit v1.2.3