summary refs log tree commit diff
path: root/nixos/tests/hledger-web.nix
diff options
context:
space:
mode:
authorJustin Humm <justin.humm@posteo.de>2021-03-12 19:24:47 +0100
committererictapen <justin.humm@posteo.de>2021-03-26 13:45:13 +0100
commit569940b9fd60ea40359a8d8f1bbffd5db31b19c8 (patch)
tree7297565d31a5dd66a070b112964f63622fd2fb2e /nixos/tests/hledger-web.nix
parent71c55e53d7a6921ee1646e6585b65270600939ab (diff)
downloadnixpkgs-569940b9fd60ea40359a8d8f1bbffd5db31b19c8.tar
nixpkgs-569940b9fd60ea40359a8d8f1bbffd5db31b19c8.tar.gz
nixpkgs-569940b9fd60ea40359a8d8f1bbffd5db31b19c8.tar.bz2
nixpkgs-569940b9fd60ea40359a8d8f1bbffd5db31b19c8.tar.lz
nixpkgs-569940b9fd60ea40359a8d8f1bbffd5db31b19c8.tar.xz
nixpkgs-569940b9fd60ea40359a8d8f1bbffd5db31b19c8.tar.zst
nixpkgs-569940b9fd60ea40359a8d8f1bbffd5db31b19c8.zip
nixos/hledger-web: add stateDir, use own user, fix ExecStart
This allows for shared hledger installations, where the web interface is
available via network and multiple user share a SSH access to the
hledger user.

Also added `--serve` to the CLI options, as hledger-web tries to open a
webbrowser otherwise:

hledger-web: xdg-open: rawSystem: runInteractiveProcess: exec: does not
exist (No such file or directory)

Co-authored-by: Aaron Andersen <aaron@fosslib.net>
Diffstat (limited to 'nixos/tests/hledger-web.nix')
-rw-r--r--nixos/tests/hledger-web.nix24
1 files changed, 10 insertions, 14 deletions
diff --git a/nixos/tests/hledger-web.nix b/nixos/tests/hledger-web.nix
index 378d819437d..a359917edd7 100644
--- a/nixos/tests/hledger-web.nix
+++ b/nixos/tests/hledger-web.nix
@@ -13,25 +13,21 @@ rec {
   name = "hledger-web";
   meta.maintainers = with lib.maintainers; [ marijanp ];
 
-  nodes = {
-    server = { config, pkgs, ... }: rec {
+  nodes = rec {
+    server = { config, pkgs, ... }: {
       services.hledger-web = {
         host = "127.0.0.1";
         port = 5000;
         enable = true;
-        journalFile = journal;
       };
-      networking.firewall.allowedTCPPorts = [ services.hledger-web.port ];
+      networking.firewall.allowedTCPPorts = [ config.services.hledger-web.port ];
+      systemd.services.hledger-web.preStart = ''
+        ln -s ${journal} /var/lib/hledger-web/.hledger.journal
+      '';
     };
-    apiserver = { config, pkgs, ... }: rec {
-      services.hledger-web = {
-        host = "127.0.0.1";
-        port = 5000;
-        enable = true;
-        serveApi = true;
-        journalFile = journal;
-      };
-      networking.firewall.allowedTCPPorts = [ services.hledger-web.port ];
+    apiserver = { ... }: {
+      imports = [ server ];
+      services.hledger-web.serveApi = true;
     };
   };
 
@@ -42,7 +38,7 @@ rec {
     server.wait_for_open_port(5000)
     with subtest("Check if web UI is accessible"):
         page = server.succeed("curl -L http://127.0.0.1:5000")
-        assert "test.journal" in page
+        assert ".hledger.journal" in page
 
     apiserver.wait_for_unit("hledger-web.service")
     apiserver.wait_for_open_port(5000)