1{ lib, pkgs, ... }:
2let
3 port = 5000;
4 scanPath = "/var/lib/legit";
5in
6{
7 name = "legit-web";
8 meta.maintainers = [ lib.maintainers.ratsclub ];
9
10 nodes = {
11 server =
12 { config, pkgs, ... }:
13 {
14 services.legit = {
15 enable = true;
16 settings = {
17 server.port = 5000;
18 repo = { inherit scanPath; };
19 };
20 };
21
22 environment.systemPackages = [ pkgs.git ];
23 };
24 };
25
26 testScript =
27 { nodes, ... }:
28 let
29 strPort = builtins.toString port;
30 in
31 ''
32 start_all()
33
34 server.wait_for_unit("network.target")
35 server.wait_for_unit("legit.service")
36
37 server.wait_until_succeeds(
38 "curl -f http://localhost:${strPort}"
39 )
40
41 server.succeed("${pkgs.writeShellScript "setup-legit-test-repo" ''
42 set -e
43 git init --bare -b master ${scanPath}/some-repo
44 git init -b master reference
45 cd reference
46 git remote add origin ${scanPath}/some-repo
47 date > date.txt
48 git add date.txt
49 git -c user.name=test -c user.email=test@localhost commit -m 'add date'
50 git push -u origin master
51 ''}")
52
53 server.wait_until_succeeds(
54 "curl -f http://localhost:${strPort}/some-repo"
55 )
56 '';
57}