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/search.nix
|
||||||
# ../2configs/elchos/log.nix
|
# ../2configs/elchos/log.nix
|
||||||
# ../2configs/elchos/irc-token.nix
|
# ../2configs/elchos/irc-token.nix
|
||||||
|
../2configs/printer-shared.nix
|
||||||
|
|
||||||
## as long as pyload is not in nixpkgs:
|
## 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
|
# 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