diff options
author | aszlig <aszlig@redmoonstudios.org> | 2016-04-11 11:52:02 +0200 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2016-04-11 12:02:52 +0200 |
commit | 2acf8677fa85ee2d3d53de401e490e530a1049cc (patch) | |
tree | 5ec92cf75e1d667a8851e2451ba345440b0767a5 /nixos/modules/services/misc/taskserver/default.nix | |
parent | 85832de2e8291163b62386d705b5b394a06cfac8 (diff) | |
download | nixlib-2acf8677fa85ee2d3d53de401e490e530a1049cc.tar nixlib-2acf8677fa85ee2d3d53de401e490e530a1049cc.tar.gz nixlib-2acf8677fa85ee2d3d53de401e490e530a1049cc.tar.bz2 nixlib-2acf8677fa85ee2d3d53de401e490e530a1049cc.tar.lz nixlib-2acf8677fa85ee2d3d53de401e490e530a1049cc.tar.xz nixlib-2acf8677fa85ee2d3d53de401e490e530a1049cc.tar.zst nixlib-2acf8677fa85ee2d3d53de401e490e530a1049cc.zip |
nixos/taskserver: Rewrite helper-tool in Python
In the comments of the pull request @nbp wrote: "Why is it implemented in 3 different languages: Nix, Bash and C?" And he's right, it doesn't make sense, because we were using C as a runuser replacement and used Nix to generate the shellscript boilerplates. Writing this in Python gets rid of all of this and we also don't need the boilerplate as well, because we're using Click to handle all the command line stuff. Note that this currently is a 1:1 implementation of what we had before. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'nixos/modules/services/misc/taskserver/default.nix')
-rw-r--r-- | nixos/modules/services/misc/taskserver/default.nix | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/nixos/modules/services/misc/taskserver/default.nix b/nixos/modules/services/misc/taskserver/default.nix index 62e35803117c..86eabb9bcfc8 100644 --- a/nixos/modules/services/misc/taskserver/default.nix +++ b/nixos/modules/services/misc/taskserver/default.nix @@ -80,9 +80,29 @@ let mkShellStr = val: "'${replaceStrings ["'"] ["'\\''"] val}'"; - nixos-taskserver = import ./helper-tool.nix { - inherit pkgs lib mkShellStr taskd; - config = cfg; + nixos-taskserver = pkgs.buildPythonPackage { + name = "nixos-taskserver"; + namePrefix = ""; + + src = pkgs.runCommand "nixos-taskserver-src" {} '' + mkdir -p "$out" + cat "${pkgs.substituteAll { + src = ./helper-tool.py; + certtool = "${pkgs.gnutls}/bin/certtool"; + inherit taskd; + inherit (cfg) dataDir user group; + inherit (cfg.server) fqdn; + }}" > "$out/main.py" + cat > "$out/setup.py" <<EOF + from setuptools import setup + setup(name="nixos-taskserver", + py_modules=["main"], + install_requires=["Click"], + entry_points="[console_scripts]\\nnixos-taskserver=main:cli") + EOF + ''; + + propagatedBuildInputs = [ pkgs.pythonPackages.click ]; }; ctlcmd = "${nixos-taskserver}/bin/nixos-taskserver --service-helper"; |