dogetipbot-telegram/flake.nix

53 lines
1.4 KiB
Nix
Raw Permalink Normal View History

2021-10-22 10:56:53 +02:00
{
description = "A dogecoin Telegram tip bot";
inputs.nixpkgs.url = "nixpkgs/nixos-21.05";
outputs = { self, nixpkgs }: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}.python3.pkgs;
packageName = "dogetipbot-telegram";
app = pkgs.buildPythonApplication rec {
pname = packageName;
version = builtins.substring 0 8 self.lastModifiedDate;
src = ./.;
doCheck = false;
propagatedBuildInputs = with pkgs; [
python-telegram-bot
requests
pycoin
sqlalchemy
];
};
module = ({ config, lib, pkgs, ... }: let
cfg = config.${packageName};
in {
options.${packageName} = with lib.options; {
enable = mkEnableOption packageName;
};
config = lib.mkIf cfg.enable {
systemd.services.dogetipbot-telegram = {
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
script = "${app}/bin/dogetipbot-telegram --db-path $STATE_DIRECTORY/users.db";
enable = true;
serviceConfig = {
EnvironmentFile = "/mnt/secrets/dogetipbot-telegram_env";
DynamicUser = true;
StateDirectory = "dogetipbot";
};
};
};
});
in {
defaultPackage.${system} = app;
nixosModules.${packageName} = module;
nixosModule = self.nixosModules.${packageName};
};
}