From de72f2fa7dd4476ef38d20c7b3e6dbedc05a83d0 Mon Sep 17 00:00:00 2001 From: Snorre Date: Thu, 6 Feb 2025 13:27:26 +0100 Subject: [PATCH] added `nix run` functionality --- flake.nix | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 50c4988..1e4e5d7 100644 --- a/flake.nix +++ b/flake.nix @@ -15,14 +15,15 @@ rust-overlay, }: let # rust-overlay = import rust-overlay; + system = "x86_64-linux"; pkgs = import nixpkgs { - system = "x86_64-linux"; + inherit system; overlays = [rust-overlay.overlays.default]; }; in { - devShells.x86_64-linux.default = pkgs.mkShell { + devShells.${system}.default = pkgs.mkShell { buildInputs = with pkgs; [ rust-bin.nightly.latest.default rust-analyzer @@ -32,6 +33,37 @@ # echo "Hello from nix dev shell" # ''; }; - formatter.x86_64-linux = pkgs.alejandra; + formatter.${system} = pkgs.alejandra; + packages.${system}.default = pkgs.stdenv.mkDerivation rec { + pname = "webbisitey-${version}"; + version = "0.1.0"; + + src = ./src/..; + runtime = ./public; + + nativeBuildInputs = [ + pkgs.makeWrapper + pkgs.rust-bin.nightly.latest.default + ]; + + buildPhase = '' + runHook preBuild + cargo build -r + mkdir -p $out/bin + cp target/release/webbisitey $out/bin + runHook postBuild + ''; + + installPhase = '' + makeWrapper $out/bin/webbisitey $out/bin/webbisitey-wrapped --run 'cd $(dirname $0)'; + cp -r $runtime $out/bin/public + ''; + + meta = { + description = "Website server backend"; + license = pkgs.lib.licenses.mit; + mainProgram = "webbisitey-wrapped"; + }; + }; }; }