{ description = "Flake for mc rust proxy"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, rust-overlay, }: let # rust-overlay = import rust-overlay; system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; overlays = [rust-overlay.overlays.default]; }; in { devShells.${system}.default = pkgs.mkShell { buildInputs = with pkgs; [ rust-bin.nightly.latest.default rust-analyzer ]; # shellHook = '' # echo "Hello from nix dev shell" # ''; }; 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"; }; }; }; }