1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7let
8 cfg = config.services.e-imzo;
9in
10{
11 options = {
12 services.e-imzo = {
13 enable = lib.mkEnableOption "E-IMZO";
14
15 package = lib.mkPackageOption pkgs "e-imzo" {
16 extraDescription = "Official mirror deletes old versions as soon as they release new one. Feel free to use either unstable or your own custom e-imzo package and ping maintainer.";
17 };
18 };
19 };
20
21 config = lib.mkIf cfg.enable {
22 systemd.user.services.e-imzo = {
23 enable = true;
24 description = "E-IMZO, uzbek state web signing service";
25 documentation = [ "https://github.com/xinux-org/e-imzo" ];
26
27 after = [
28 "network-online.target"
29 "graphical.target"
30 ];
31 wants = [
32 "network-online.target"
33 "graphical.target"
34 ];
35 wantedBy = [ "default.target" ];
36
37 serviceConfig = {
38 Type = "simple";
39 Restart = "always";
40 RestartSec = 1;
41 ExecStart = lib.getExe cfg.package;
42
43 NoNewPrivileges = true;
44 SystemCallArchitectures = "native";
45 };
46 };
47 };
48
49 meta.maintainers = with lib.maintainers; [ orzklv ];
50}