{ 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; }) { }); }; }; }