diff --git a/flake.lock b/flake.lock index b8334cbb..776fb39f 100644 --- a/flake.lock +++ b/flake.lock @@ -52,22 +52,6 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1681358109, - "narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { "flake-utils": "flake-utils", @@ -78,7 +62,9 @@ "rust-overlay": { "inputs": { "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_2" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1683857898, diff --git a/flake.nix b/flake.nix index 2646d14c..2563a5b0 100644 --- a/flake.nix +++ b/flake.nix @@ -2,23 +2,58 @@ description = "Developpment shell for Plume including nightly Rust compiler"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - inputs.rust-overlay.url = "github:oxalica/rust-overlay"; + inputs.rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; inputs.flake-utils.url = "github:numtide/flake-utils"; outputs = { self, nixpkgs, flake-utils, rust-overlay, ... }: flake-utils.lib.eachDefaultSystem (system: - let + let overlays = [ (import rust-overlay) ]; pkgs = import nixpkgs { inherit system overlays; }; - in { - devShells.default = pkgs.mkShell { - nativeBuildInputs = with pkgs; [ - rust-bin.nightly.latest.default + inputs = with pkgs; [ + (rust-bin.nightly.latest.default.override { + targets = [ "wasm32-unknown-unknown" ]; + }) + wasm-pack openssl pkg-config gettext postgresql ]; + in { + packages.default = pkgs.rustPlatform.buildRustPackage { + pname = "plume"; + version = "0.7.3-dev"; + + src = ./.; + + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "pulldown-cmark-0.8.0" = "sha256-lpfoRDuY3zJ3QmUqJ5k9OL0MEdGDpwmpJ+u5BCj2kIA="; + "rocket_csrf-0.1.2" = "sha256-WywZfMiwZqTPfSDcAE7ivTSYSaFX+N9fjnRsLSLb9wE="; + }; + }; + buildNoDefaultFeatures = true; + buildFeatures = ["postgresql" "s3"]; + + nativeBuildInputs = inputs; + + buildPhase = '' + wasm-pack build --target web --release plume-front + cargo build --no-default-features --features postgresql,s3 --path . + cargo build --no-default-features --features postgresql,s3 --path plume-cli + ''; + installPhase = '' + cargo install --no-default-features --features postgresql,s3 --path . --target-dir $out + cargo install --no-default-features --features postgresql,s3 --path plume-cli --target-dir $out + ''; + }; + devShells.default = pkgs.mkShell { + packages = inputs; }; }); }