From 7634c9fdebf4e0461f6ad5d9e54d310201c8389b Mon Sep 17 00:00:00 2001 From: Ben C Date: Fri, 13 Mar 2026 13:02:31 -0400 Subject: [PATCH] Improve NixOS module --- Cargo.lock | 78 +++++++++++++++++++++++++- flake.nix | 11 ++-- nix/nixosModule.nix => nixosModule.nix | 14 ++--- 3 files changed, 90 insertions(+), 13 deletions(-) rename nix/nixosModule.nix => nixosModule.nix (89%) diff --git a/Cargo.lock b/Cargo.lock index ef28c01..e605dcf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1004,7 +1004,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -2048,6 +2048,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + [[package]] name = "windows-sys" version = "0.61.2" @@ -2081,13 +2090,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -2100,6 +2126,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -2112,6 +2144,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -2124,12 +2162,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -2142,6 +2192,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -2154,6 +2210,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -2166,6 +2228,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -2178,6 +2246,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "wit-bindgen" version = "0.51.0" diff --git a/flake.nix b/flake.nix index 7899abf..ae69363 100644 --- a/flake.nix +++ b/flake.nix @@ -30,16 +30,14 @@ selectToolchain = pkgs: pkgs.fenix.default; mkCrane = pkgs: (crane.mkLib pkgs).overrideToolchain (selectToolchain pkgs).toolchain; mkCraneStuff = pkgs: let - src = ./.; + craneLib = mkCrane pkgs; commonArgs = { - src = (mkCrane pkgs).cleanCargoSource src; + src = craneLib.cleanCargoSource ./.; strictDeps = true; }; - craneLib = mkCrane pkgs; cargoArtifacts = craneLib.buildDepsOnly commonArgs; in { inherit - src commonArgs craneLib cargoArtifacts @@ -61,6 +59,11 @@ }; }; devShell = pkgs: (mkCrane pkgs).devShell {}; + nixosModule = {lib, ...}: { + imports = ["./nixosModule.nix"]; + + services.bingus-bot.package = lib.mkDefault self.packages.default; + }; package = { rustPlatform, lib, diff --git a/nix/nixosModule.nix b/nixosModule.nix similarity index 89% rename from nix/nixosModule.nix rename to nixosModule.nix index 9a95027..a9e1215 100644 --- a/nix/nixosModule.nix +++ b/nixosModule.nix @@ -1,5 +1,4 @@ { - pkgs, lib, config, ... @@ -7,11 +6,11 @@ cfg = config.services.bingus-bot; in { options.services.bingus-bot = { - enable = lib.mkOption { - type = lib.types.bool; - default = false; - example = true; - description = "Whether to enable Bingus, a Discord bot that uses Markov Chains"; + enable = lib.mkEnableOption "Bingus, a Discord bot that uses Markov Chains"; + + package = lib.mkOption { + description = "Package to use for bingus"; + type = lib.types.package; }; tokenFile = lib.mkOption { @@ -48,8 +47,9 @@ in { }; serviceConfig = { - ExecStart = lib.getExe pkgs.bingus; + ExecStart = lib.getExe cfg.package; Restart = "always"; + RestartSec = "5s"; StateDirectory = "bingus"; StateDirectoryMode = "0755"; LoadCredential = "token:${cfg.tokenFile}"; -- 2.51.2