blahrs/flake.nix

80 lines
1.9 KiB
Nix

rec {
description = "Blah Chat Server";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
naersk = {
url = "github:nix-community/naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
naersk,
}:
let
inherit (nixpkgs) lib;
eachSystem = lib.genAttrs lib.systems.flakeExposed;
rev = self.rev or (lib.warn "Git changes are not committed" (self.dirtyRev or "dirty"));
in
{
packages = eachSystem (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
naersk' = pkgs.callPackage naersk { };
in
rec {
default = blahd;
blahd = pkgs.callPackage (
{
pkg-config,
openssl,
sqlite,
}:
naersk'.buildPackage rec {
pname = "blahd";
src = ./.;
version = "git-${rev}";
CFG_RELEASE = version;
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
sqlite
];
cargoBuildOptions = opts: opts ++ [
"--package=blahd"
"--package=blahctl"
];
postInstall = ''
mkdir -p $out/etc/systemd/system
substitute ./blahd/blahd.example.service $out/etc/systemd/system/blahd.service \
--replace-fail '/usr/bin/blahd' "$out/bin/blahd"
'';
meta = {
inherit description;
homepage = "https://github.com/Blah-IM/blahrs";
};
}
) { };
}
);
nixosModules = rec {
default = blahd;
blahd = import ./nix/module.nix {
inherit self;
};
};
};
}