diff options
Diffstat (limited to 'users/Profpatsch/writers/default.nix')
-rw-r--r-- | users/Profpatsch/writers/default.nix | 115 |
1 files changed, 68 insertions, 47 deletions
diff --git a/users/Profpatsch/writers/default.nix b/users/Profpatsch/writers/default.nix index 3151a9d3bd44..02f39da02dbe 100644 --- a/users/Profpatsch/writers/default.nix +++ b/users/Profpatsch/writers/default.nix @@ -1,7 +1,7 @@ { depot, pkgs, lib, ... }: let - bins = depot.nix.getBins pkgs.s6-portable-utils ["s6-mkdir" "s6-cat" "s6-ln" "s6-ls" "s6-touch" ] - // depot.nix.getBins pkgs.coreutils ["printf" ]; + bins = depot.nix.getBins pkgs.s6-portable-utils [ "s6-mkdir" "s6-cat" "s6-ln" "s6-ls" "s6-touch" ] + // depot.nix.getBins pkgs.coreutils [ "printf" ]; inherit (depot.nix.yants) defun struct restrict attrs list string drv any; @@ -11,56 +11,76 @@ let restrict "flake error" (s: lib.any (prefix: (builtins.substring 0 1 s) == prefix) - [ "E" "W" ]) + [ "E" "W" ]) string; Libraries = defun [ (attrs any) (list drv) ]; - python3 = { - name, - libraries ? (_: []), - flakeIgnore ? [] - }: pkgs.writers.writePython3 name { - libraries = Libraries libraries pkgs.python3Packages; - flakeIgnore = - let ignoreTheseErrors = [ - # whitespace after { - "E201" - # whitespace before } - "E202" - # fuck 4-space indentation - "E121" "E111" - # who cares about blank lines … - # … at end of files - "W391" - # … between functions - "E302" "E305" - ]; - in list FlakeError (ignoreTheseErrors ++ flakeIgnore); - }; + python3 = + { name + , libraries ? (_: [ ]) + , flakeIgnore ? [ ] + }: pkgs.writers.writePython3 name { + libraries = Libraries libraries pkgs.python3Packages; + flakeIgnore = + let + ignoreTheseErrors = [ + # whitespace after { + "E201" + # whitespace before } + "E202" + # fuck 4-space indentation + "E121" + "E111" + # who cares about blank lines … + # … at end of files + "W391" + # … between functions + "E302" + "E305" + ]; + in + list FlakeError (ignoreTheseErrors ++ flakeIgnore); + }; # TODO: add the same flake check as the pyhon3 writer - python3Lib = { name, libraries ? (_: []) }: moduleString: - let srcTree = depot.nix.runExecline.local name { stdin = moduleString; } [ - "importas" "out" "out" - "if" [ bins.s6-mkdir "-p" "\${out}/${name}" ] - "if" [ - "redirfd" "-w" "1" "\${out}/setup.py" - bins.printf '' - from distutils.core import setup + python3Lib = { name, libraries ? (_: [ ]) }: moduleString: + let + srcTree = depot.nix.runExecline.local name { stdin = moduleString; } [ + "importas" + "out" + "out" + "if" + [ bins.s6-mkdir "-p" "\${out}/${name}" ] + "if" + [ + "redirfd" + "-w" + "1" + "\${out}/setup.py" + bins.printf + '' + from distutils.core import setup - setup( - name='%s', - packages=['%s'] - ) - '' name name - ] - "if" [ - # redirect stdin to the init py - "redirfd" "-w" "1" "\${out}/${name}/__init__.py" - bins.s6-cat - ] - ]; - in pkgs.python3Packages.buildPythonPackage { + setup( + name='%s', + packages=['%s'] + ) + '' + name + name + ] + "if" + [ + # redirect stdin to the init py + "redirfd" + "-w" + "1" + "\${out}/${name}/__init__.py" + bins.s6-cat + ] + ]; + in + pkgs.python3Packages.buildPythonPackage { inherit name; src = srcTree; propagatedBuildInputs = libraries pkgs.python3Packages; @@ -68,7 +88,8 @@ let }; -in { +in +{ inherit python3 python3Lib |