m omo: add shared printer

This commit is contained in:
makefu 2017-01-22 23:41:01 +01:00
parent 150ecf6cf5
commit 97bd06f03d
No known key found for this signature in database
GPG Key ID: 36F7711F3FC0F225
3 changed files with 39 additions and 67 deletions

View File

@ -58,6 +58,7 @@ in {
# ../2configs/elchos/search.nix
# ../2configs/elchos/log.nix
# ../2configs/elchos/irc-token.nix
../2configs/printer-shared.nix
## as long as pyload is not in nixpkgs:
# docker run -d -v /var/lib/pyload:/opt/pyload/pyload-config -v /media/crypt0/pyload:/opt/pyload/Downloads --name pyload --restart=always -p 8112:8000 -P writl/pyload

View File

@ -1,67 +0,0 @@
{ config, lib, pkgs, ... }:
# TODO: remove tv lib :)
with import <stockholm/lib>;
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;
};
}

View File

@ -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" ''<?xml version="1.0" ?><!DOCTYPE service-group SYSTEM 'avahi-service.dtd'><service-group><name replace-wildcards="yes">AirPrint Samsung_SCX-3200_Series @ %h</name><service><type>_ipp._tcp</type><subtype>_universal._sub._ipp._tcp</subtype><port>631</port><txt-record>txtvers=1</txt-record><txt-record>qtotal=1</txt-record><txt-record>Transparent=T</txt-record><txt-record>URF=none</txt-record><txt-record>rp=printers/Samsung_SCX-3200_Series</txt-record><txt-record>note=Samsung SCX-3200 Series</txt-record><txt-record>product=(GPL Ghostscript)</txt-record><txt-record>printer-state=3</txt-record><txt-record>printer-type=0x801044</txt-record><txt-record>pdl=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</txt-record></service></service-group>'';
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 ];
}