64 lines
1.5 KiB
Nix
64 lines
1.5 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
inputs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.services.lnxlink;
|
|
|
|
lnxlink = pkgs.python3Packages.buildPythonApplication {
|
|
pname = "lnxlink";
|
|
version = "2025.7.0";
|
|
pyproject = true;
|
|
|
|
# Linking my fork here which allows for newer versions of setuptools and wheel.
|
|
# Also includes some fixes that make the program actually work with NixOS.
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "padarom";
|
|
repo = "lnxlink";
|
|
rev = "7202e48";
|
|
hash = "sha256-E2J1d9D5SJWGEutAPAo1BM98cMzH7QrqIz3yrlXpzGE=";
|
|
};
|
|
|
|
build-system = with pkgs.python3Packages; [setuptools wheel];
|
|
dependencies = with pkgs.python3Packages; [
|
|
distro
|
|
pyyaml
|
|
paho-mqtt
|
|
requests
|
|
psutil
|
|
inotify
|
|
jeepney
|
|
];
|
|
|
|
meta = {
|
|
homepage = "https://github.com/bkbilly/lnxlink";
|
|
description = "Effortlessly manage your Linux machine using MQTT.";
|
|
license = licenses.mit;
|
|
mainProgram = "lnxlink";
|
|
};
|
|
};
|
|
in {
|
|
options.services = {
|
|
lnxlink = {
|
|
enable = mkEnableOption "Enable LNXlink";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
environment.systemPackages = [lnxlink];
|
|
|
|
systemd.services.lnxlink = {
|
|
enable = true;
|
|
wantedBy = ["multi-user.target"];
|
|
serviceConfig = {
|
|
# Note: Logging will also be done to the working directory, so logs will
|
|
# be lost upon a restart.
|
|
WorkingDirectory = "/tmp";
|
|
ExecStart = "${lnxlink}/bin/lnxlink -i -c ${./lnxlink.yaml}";
|
|
};
|
|
};
|
|
};
|
|
}
|