m omo: add shared printer
This commit is contained in:
parent
150ecf6cf5
commit
97bd06f03d
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
38
makefu/2configs/printer-shared.nix
Normal file
38
makefu/2configs/printer-shared.nix
Normal 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 ];
|
||||
}
|
Loading…
Reference in a new issue