65 lines
2.2 KiB
Nix
65 lines
2.2 KiB
Nix
{
|
|
description = "Brownpaper pastebin";
|
|
|
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs";
|
|
|
|
inputs.naersk.url = "github:nix-community/naersk";
|
|
|
|
outputs = { self, nixpkgs, flake-utils, naersk }:
|
|
(flake-utils.lib.eachSystem [ "x86_64-linux" ]
|
|
(system:
|
|
let
|
|
pkgs = import nixpkgs { inherit system; };
|
|
naersk-lib = naersk.lib."${system}";
|
|
bp = pkgs.callPackage ./default.nix { inherit pkgs; src = ./.; };
|
|
in
|
|
rec {
|
|
apps = builtins.mapAttrs (_n: pkg: flake-utils.lib.mkApp { drv = pkg; }) packages;
|
|
defaultApp = apps.brownpaper;
|
|
packages = rec {
|
|
brownpaper = bp.client;
|
|
brownpaper-server = bp.server;
|
|
brownpaper-server-nk = naersk-lib.buildPackage (with pkgs; with llvmPackages_10; {
|
|
pname = "brownpaper";
|
|
root = self;
|
|
nativeBuildInputs = [ clang pkg-config ];
|
|
buildInputs = [ gmp nettle ];
|
|
LIBCLANG_PATH = "${libclang.lib}/lib";
|
|
|
|
});
|
|
brownpaper-server-docker = pkgs.dockerTools.buildLayeredImage {
|
|
name = "brownpaper";
|
|
config = {
|
|
Volume = "/snips";
|
|
Port = "3000";
|
|
Cmd = [ "${brownpaper-server}/bin/brownpaper" ];
|
|
};
|
|
};
|
|
};
|
|
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; }) { });
|
|
};
|
|
};
|
|
}
|