From 9160fc3c2be586b555295c53c4a92b8588ff96c4 Mon Sep 17 00:00:00 2001 From: anirudhb Date: Thu, 30 Dec 2021 19:50:12 -0800 Subject: [PATCH] nix: update flake --- flake.lock | 6 +++--- flake.nix | 44 +++++++++++++++++++++++++++++++++++++------- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/flake.lock b/flake.lock index 551d690..3796097 100644 --- a/flake.lock +++ b/flake.lock @@ -52,11 +52,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1639837534, - "narHash": "sha256-zAZoVtvVfrs41e+kEEumyptQ4DOkcXQIYgxmaJ51+hs=", + "lastModified": 1640328990, + "narHash": "sha256-KQbvJx4qO9bo04tfTZuISyY4vRC5k3ZB3lyLS21XWIw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e1f9e754a40b645a39f6592d45df943cb5f59dcf", + "rev": "ab93217a2b74a1c36bc892c14f44ee5959c33f12", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a443ada..8952d4e 100644 --- a/flake.nix +++ b/flake.nix @@ -14,6 +14,32 @@ let pkgs = nixpkgs.legacyPackages.${system}; fenixPkgs = fenix.packages.${system}; + haasApiPackage = { rustPlatform, system, systemd ? false, ... }: with pkgs; let + isDarwin = lib.hasSuffix "darwin" system; + isLinux = lib.hasSuffix "linux" system; + in rustPlatform.buildRustPackage rec { + pname = "haas-api"; + version = "0.0.0"; + src = ./.; + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "caddy-0.1.0" = "sha256-kiTfY6bz9+rat6UkP+7u7jbp7AQVULl7jWMok12S5D4="; + }; + }; + buildInputs = [ + (if systemd then postgresql else postgresql.override { systemd = false; }) + ] ++ lib.optional isDarwin [ + darwin.apple_sdk.frameworks.Security + ] ++ lib.optional isLinux [ + openssl + ]; + nativeBuildInputs = with pkgs; lib.optional isLinux [ + pkg-config + ]; + enableParallelBuilding = true; + doCheck = false; # FIXME + }; in rec { devShell = pkgs.mkShell { nativeBuildInputs = with pkgs; [ @@ -36,13 +62,17 @@ ]; }; - packages.haas-api = pkgs.rustPlatform.buildRustPackage rec { - pname = "haas-api"; - version = "0.0.0"; - src = ./.; - cargoLock.lockFile = ./Cargo.lock; - doCheck = false; # FIXME - }; + packages.haas-api = pkgs.callPackage haasApiPackage { inherit system; }; + packages.haas-api-dockerImage = if pkgs.lib.hasSuffix "linux" system then pkgs.dockerTools.buildLayeredImage { + name = "haas-api"; + contents = pkgs.callPackage haasApiPackage { inherit system; /* FIXME */ systemd = true; }; + extraCommands = '' + cp ${./Rocket.toml} . + ''; + config = { + Cmd = [ "haas_api" ]; + }; + } else null; defaultPackage = packages.haas-api; });