init flake

This commit is contained in:
Damocles 2026-04-29 20:33:37 +02:00
commit 09e8a3c012
2 changed files with 93 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/target

92
flake.nix Normal file
View file

@ -0,0 +1,92 @@
{
description = "damocles-daemon - Matrix chat presence for Damocles";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
treefmt-nix,
...
}:
let
systems = [
"x86_64-linux"
"aarch64-linux"
];
forAllSystems =
f:
nixpkgs.lib.genAttrs systems (
system:
f {
pkgs = nixpkgs.legacyPackages.${system};
treefmt-eval = treefmt-nix.lib.evalModule nixpkgs.legacyPackages.${system} treefmt-config;
}
);
treefmt-config = {
projectRootFile = "flake.nix";
programs.nixfmt.enable = true;
programs.rustfmt.enable = true;
programs.taplo.enable = true;
};
in
{
packages = forAllSystems (
{ pkgs, ... }:
{
default = pkgs.rustPlatform.buildRustPackage {
pname = "damocles-daemon";
version = "0.1.0";
src = nixpkgs.lib.cleanSource ./.;
cargoLock.lockFile = ./Cargo.lock;
nativeBuildInputs = with pkgs; [ pkg-config ];
buildInputs = with pkgs; [
openssl
];
meta = {
description = "Matrix chat daemon for Damocles";
mainProgram = "damocles-daemon";
platforms = nixpkgs.lib.platforms.linux;
};
};
}
);
devShells = forAllSystems (
{ pkgs, ... }:
{
default = pkgs.mkShell {
packages = with pkgs; [
cargo
rustc
rust-analyzer
clippy
rustfmt
pkg-config
openssl
];
};
}
);
formatter = forAllSystems ({ treefmt-eval, ... }: treefmt-eval.config.build.wrapper);
checks = forAllSystems (
{ pkgs, treefmt-eval, ... }:
{
formatting = treefmt-eval.config.build.check self;
build = self.packages.${pkgs.stdenv.hostPlatform.system}.default;
}
);
};
}