From 80cd181f0a5b890b39580811792a4c3f9a91df30 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Sat, 7 Nov 2020 12:29:47 -0500 Subject: [PATCH] unified nix build --- backend/default.nix | 14 ++++++-------- default.nix | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 default.nix diff --git a/backend/default.nix b/backend/default.nix index 6ab7c73..8c47a24 100644 --- a/backend/default.nix +++ b/backend/default.nix @@ -9,12 +9,10 @@ let src = builtins.filterSource (path: type: type != "directory" || builtins.baseNameOf path != "target") ./.; -in { - backend = naersk.buildPackage { - name = "mi_backend"; - inherit src; - buildInputs = with pkgs; [ openssl pkg-config sqlite libsodium ]; - SODIUM_USE_PKG_CONFIG = "1"; - SODIUM_SHARED = "1"; - }; +in naersk.buildPackage { + name = "mi_backend"; + inherit src; + buildInputs = with pkgs; [ openssl pkg-config sqlite libsodium ]; + SODIUM_USE_PKG_CONFIG = "1"; + SODIUM_SHARED = "1"; } diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..e0e7153 --- /dev/null +++ b/default.nix @@ -0,0 +1,33 @@ +{ sources ? import ./nix/sources.nix, pkgs ? import sources.nixpkgs { } }: +with pkgs; +let + backend = pkgs.callPackage ./backend { inherit sources pkgs; }; + frontend = pkgs.callPackage ./frontend { inherit sources pkgs; }; + gruvbox = pkgs.callPackage sources.gruvbox-css { }; +in stdenv.mkDerivation { + pname = "mi"; + version = "${backend.version}"; + phases = "installPhase"; + + installPhase = '' + # service binary + mkdir -p $out/bin + + for file in ${backend}/bin/*; do + ln -s ${backend}/bin/$(${coreutils}/bin/basename $file) $out/bin/$(${coreutils}/bin/basename $file) + done + + # frontend JS + mkdir -p $out/public/js + ln -s ${frontend}/Main.js $out/public/js/Main.js + + # static files + cp -vrf ${./static}/* $out/public + + mkdir -p $out/public/css + ln -s ${gruvbox}/gruvbox.css $out/public/css/gruvbox.css + + # migrations + ln -s ${./backend/migrations} $out/migrations + ''; +}