brownpaper/flake.nix
2021-05-02 11:42:32 +02:00

45 lines
1.5 KiB
Nix

{
description = "Brownpaper pastebin";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.nixpkgs.url = "github:NixOS/nixpkgs";
outputs = { self, nixpkgs, flake-utils }:
(flake-utils.lib.eachSystem [ "x86_64-linux" ]
(system:
let
pkgs = import nixpkgs { inherit system; };
bp = pkgs.callPackage ./default.nix { inherit pkgs; src = ./.; };
in
rec {
legacyPackages =
{ brownpaper = bp.client; brownpaper-server = bp.server; };
apps = builtins.mapAttrs (_n: pkg: flake-utils.lib.mkApp { drv = pkg; }) legacyPackages;
defaultApp = apps.brownpaper;
packages = flake-utils.lib.flattenTree legacyPackages;
defaultPackage = packages.brownpaper;
devShell = with pkgs; mkShell {
buildInputs = [ cargo rustfmt nettle llvmPackages_10.clang llvmPackages_10.libclang pkgconfig ];
LIBCLANG_PATH = "${llvmPackages_10.libclang}/lib";
};
hydraJobs.build = defaultPackage;
}
) // rec {
nixosModules.brownpaper = import ./mod.nix;
nixosModule = nixosModules.brownpaper;
}) // rec {
overlay = final: prev:
let
bp = final.callPackage ./default.nix { pkgs = final; src = self; };
in
{
brownpaper = bp.client;
brownpaper-server = bp.server;
};
overlays = {
pinned = final: prev: (overlay (import nixpkgs { inherit (final) system; }) { });
};
};
}