Add nixos module

This commit is contained in:
bluepython508
2024-11-03 22:49:37 +00:00
parent 087324b785
commit b19c49baef
3 changed files with 44 additions and 6 deletions

2
Cargo.lock generated
View File

@@ -134,7 +134,7 @@ dependencies = [
] ]
[[package]] [[package]]
name = "botc-discord" name = "botc-mover"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"color-eyre", "color-eyre",

View File

@@ -1,5 +1,5 @@
[package] [package]
name = "botc-discord" name = "botc-mover"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"

View File

@@ -14,7 +14,12 @@
}; };
}; };
outputs = inputs@{ flake-parts, crane-flake-parts, ... }: outputs = inputs @ {
self,
flake-parts,
crane-flake-parts,
...
}:
flake-parts.lib.mkFlake {inherit inputs;} { flake-parts.lib.mkFlake {inherit inputs;} {
imports = [ imports = [
crane-flake-parts.flakeModules.default crane-flake-parts.flakeModules.default
@@ -23,7 +28,40 @@
crane.source = ./.; crane.source = ./.;
perSystem = {pkgs, ...}: { perSystem = {pkgs, ...}: {
crane.packages.default.buildInputs = [pkgs.sqlite]; crane.packages.default.buildInputs = [pkgs.sqlite];
crane.shell.args.packages = [pkgs.sqlite-interactive pkgs.sqlx-cli]; crane.shell.args.packages = [pkgs.sqlite-interactive];
};
flake.nixosModules.default = {
pkgs,
lib,
config,
...
}: let
pkg = self.packages.${pkgs.system}.default;
cfg = config.bluepython508.botc-mover;
in {
options.bluepython508.botc-mover = with lib; {
enable = mkEnableOption "botc-mover";
tokenFile = mkOption {
type = types.path;
};
};
config.systemd.services.botc-mover = lib.mkIf cfg.enable {
description = "BotC Mover";
environment = {
DB_FILE = "/var/lib/botc-mover/db.sqlite";
DISCORD_TOKEN_FILE = "%d/discord-token";
RUST_BACKTRACE = "1";
};
wantedBy = ["multi-user.target"];
script = "${pkg}/bin/botc-mover";
serviceConfig = {
LoadCredential = ["discord-token:${cfg.tokenFile}"];
DynamicUser = true;
StateDirectory = "botc-mover";
};
};
}; };
}; };
} }