2022-02-19 19:10:17 +00:00
|
|
|
{
|
|
|
|
|
|
|
|
inputs = {
|
|
|
|
naersk.url = "github:nmattia/naersk/master";
|
2022-02-19 20:39:06 +00:00
|
|
|
naersk.inputs.nixpkgs.follows = "nixpkgs";
|
2022-02-19 19:10:17 +00:00
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
|
|
utils.url = "github:numtide/flake-utils";
|
|
|
|
};
|
|
|
|
|
|
|
|
outputs = { self, nixpkgs, utils, naersk }:
|
|
|
|
utils.lib.eachDefaultSystem (system:
|
|
|
|
let
|
|
|
|
pkgs = import nixpkgs { inherit system; };
|
|
|
|
naersk-lib = pkgs.callPackage naersk { };
|
|
|
|
in {
|
|
|
|
|
2022-02-19 19:42:00 +00:00
|
|
|
defaultPackage = naersk-lib.buildPackage {
|
|
|
|
src = ./.;
|
|
|
|
buildInputs = with pkgs; [ pkg-config openssl ];
|
|
|
|
};
|
2022-02-19 19:10:17 +00:00
|
|
|
|
|
|
|
defaultApp = utils.lib.mkApp { drv = self.defaultPackage."${system}"; };
|
|
|
|
|
|
|
|
devShell = with pkgs;
|
|
|
|
mkShell {
|
|
|
|
buildInputs = [
|
|
|
|
# rust
|
|
|
|
cargo
|
|
|
|
cargo-watch
|
|
|
|
rustc
|
|
|
|
rust-analyzer
|
|
|
|
rustfmt
|
|
|
|
rustPackages.clippy
|
|
|
|
|
|
|
|
# system
|
|
|
|
pkg-config
|
|
|
|
openssl
|
|
|
|
cmake
|
|
|
|
|
|
|
|
# dhall
|
|
|
|
dhall
|
|
|
|
dhall-json
|
|
|
|
|
|
|
|
jo
|
|
|
|
];
|
|
|
|
RUST_LOG = "info";
|
|
|
|
RUST_SRC_PATH = rustPlatform.rustLibSrc;
|
|
|
|
};
|
|
|
|
|
2022-02-19 19:29:10 +00:00
|
|
|
nixosModules.bot = { config, lib, ... }: {
|
2022-02-19 19:30:32 +00:00
|
|
|
options.within.services.mara-bot.enable =
|
|
|
|
lib.mkEnableOption "enable Mara bot";
|
2022-02-19 19:19:28 +00:00
|
|
|
|
2022-02-19 19:23:55 +00:00
|
|
|
config = lib.mkIf config.within.services.mara-bot.enable {
|
2022-02-19 19:30:32 +00:00
|
|
|
users.groups.mara-bot = { };
|
|
|
|
|
2022-02-19 19:19:28 +00:00
|
|
|
users.users.mara-bot = {
|
|
|
|
createHome = true;
|
|
|
|
isSystemUser = true;
|
|
|
|
home = "/var/lib/mara-bot";
|
2022-02-19 19:30:32 +00:00
|
|
|
group = "mara-bot";
|
2022-02-19 19:19:28 +00:00
|
|
|
};
|
2022-02-19 19:10:17 +00:00
|
|
|
|
2022-02-19 19:19:28 +00:00
|
|
|
systemd.services.mara-bot = {
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
environment.RUST_LOG = "tower_http=debug,info";
|
2022-02-19 19:39:21 +00:00
|
|
|
unitConfig.ConditionPathExists = "/var/lib/mara-bot/config.yaml";
|
2022-02-19 19:19:28 +00:00
|
|
|
serviceConfig = {
|
|
|
|
User = "mara-bot";
|
|
|
|
Group = "mara-bot";
|
|
|
|
Restart = "always";
|
|
|
|
WorkingDirectory = "/var/lib/mara-bot";
|
2022-02-19 19:36:06 +00:00
|
|
|
ExecStart = "${self.defaultPackage."${system}"}/bin/mara";
|
2022-02-19 19:19:28 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
});
|
2022-02-19 19:10:17 +00:00
|
|
|
}
|