87 lines
2.3 KiB
Nix
87 lines
2.3 KiB
Nix
{
|
|
description = "A very basic flake";
|
|
|
|
#nixpkgs for testing framework
|
|
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
|
|
outputs = { self, nixpkgs, ... }: let
|
|
forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" ];
|
|
in
|
|
{
|
|
|
|
packages.x86_64-linux.tasklist = nixpkgs.legacyPackages.x86_64-linux.buildGoModule rec {
|
|
pname = "tasklist";
|
|
version = "1.0";
|
|
vendorHash = "sha256-olHQNClxU4sykBlhlbvTL6wCUYkMxnaQdLnRwvuJffw=";
|
|
src = ./.;
|
|
|
|
postInstall = ''
|
|
cp forms.html $out/
|
|
'';
|
|
};
|
|
|
|
nixosModules.malobeo-tasklist = { config, lib, pkgs, ... }:
|
|
let
|
|
cfg = config.services.malobeo-tasklist;
|
|
tasklist-pkg = self.packages.x86_64-linux.tasklist;
|
|
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
|
in
|
|
{
|
|
options = {
|
|
services.malobeo-tasklist = {
|
|
enable = lib.mkOption {
|
|
default = false;
|
|
type = lib.types.bool;
|
|
description = lib.mdDoc ''
|
|
Enables tasklist
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
environment.systemPackages = [ tasklist-pkg ];
|
|
|
|
users = {
|
|
groups.malobeo-tasklist = {};
|
|
users.malobeo-tasklist = {
|
|
description = "malobeo tasklist user";
|
|
group = "malobeo-tasklist";
|
|
isNormalUser = true;
|
|
};
|
|
};
|
|
|
|
systemd.services.malobeo-tasklist = {
|
|
description = "malobeo tasklist daemon";
|
|
serviceConfig = {
|
|
Type = "simple";
|
|
ExecStart = "${tasklist-pkg}/bin/tasklist -d /var/lib/malobeo-tasklist/tasklist.db -f ${tasklist-pkg}/forms.html";
|
|
Restart = "on-failure";
|
|
};
|
|
|
|
preStart = ''
|
|
mkdir -m 0770 -p "/var/lib/malobeo-tasklist"
|
|
chown malobeo-tasklist:malobeo-tasklist "/var/lib/malobeo-tasklist"
|
|
'';
|
|
|
|
wantedBy = [ "default.target" ];
|
|
|
|
environment = {
|
|
USER = "malobeo-tasklist";
|
|
HOME = "/var/lib/malobeo-tasklist";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
checks = forAllSystems (system: let
|
|
checkArgs = {
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
inherit self;
|
|
};
|
|
in {
|
|
malobeo-tasklist = import ./test/test.nix checkArgs;
|
|
});
|
|
};
|
|
}
|