nix: build rust program

This commit is contained in:
Cadey Ratio 2020-07-14 17:14:01 -04:00
parent b4140e95d3
commit d8aea8424b
2 changed files with 27 additions and 19 deletions

View File

@ -8,13 +8,13 @@ let
dockerImage = pkg: dockerImage = pkg:
pkgs.dockerTools.buildLayeredImage { pkgs.dockerTools.buildLayeredImage {
name = "xena/christinewebsite"; name = "xena/christinewebsite";
tag = pkg.version; tag = "latest";
contents = [ pkg pkgs.cacert ]; contents = [ pkgs.cacert ];
config = { config = {
Cmd = [ "/bin/site" ]; Cmd = [ "${pkg}/bin/xesite" ];
WorkingDir = "/"; WorkingDir = "${pkg}/";
}; };
}; };

View File

@ -1,28 +1,36 @@
{ pkgs ? import (import ./nix/sources.nix).nixpkgs { } }: { sources ? import ./nix/sources.nix, pkgs ? import sources.nixpkgs { } }:
with pkgs; with pkgs;
assert lib.versionAtLeast go.version "1.13"; let
srcNoTarget = dir:
builtins.filterSource
(path: type: type != "directory" || builtins.baseNameOf path != "target")
dir;
naersk = pkgs.callPackage sources.naersk { };
gruvbox-css = pkgs.callPackage sources.gruvbox-css { };
src = srcNoTarget ./.;
xesite = naersk.buildPackage {
inherit src;
buildInputs = [ pkg-config openssl ];
remapPathPrefix = true;
};
buildGoPackage rec { in pkgs.stdenv.mkDerivation {
name = "christinewebsite-HEAD"; inherit (xesite) name;
version = "latest"; inherit src;
goPackagePath = "christine.website"; phases = "installPhase";
src = ./.;
goDeps = ./nix/deps.nix;
allowGoReference = false;
preBuild = '' installPhase = ''
export CGO_ENABLED=0 mkdir -p $out $out/blog $out/css $out/gallery $out/static $out/talks $out/bin
buildFlagsArray+=(-pkgdir "$TMPDIR")
'';
postInstall = '' cp -rf $src/config.dhall $out/config.dhall
cp -rf $src/blog $out/blog cp -rf $src/blog $out/blog
cp -rf $src/css $out/css cp -rf $src/css $out/css
cp -rf $src/gallery $out/gallery cp -rf $src/gallery $out/gallery
cp -rf $src/signalboost.dhall $out/signalboost.dhall cp -rf $src/signalboost.dhall $out/signalboost.dhall
cp -rf $src/static $out/static cp -rf $src/static $out/static
cp -rf $src/talks $out/talks cp -rf $src/talks $out/talks
cp -rf $src/templates $out/templates
cp -rf ${xesite}/bin/xesite $out/bin/xesite
''; '';
} }