From 98bba7fa6ae561e48ea06d7141d51d94acb705d3 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Tue, 28 May 2024 21:51:35 +0200 Subject: [PATCH] core: wrap nix-build and nix-shell with default log format --- nix-os/core.nix | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/nix-os/core.nix b/nix-os/core.nix index eaa0ea8..a50a316 100644 --- a/nix-os/core.nix +++ b/nix-os/core.nix @@ -4,6 +4,26 @@ { config, pkgs, lib, ... }: +let + /* + * pkgs: package - nixpkgs package + * exe: string - executable (under bin) in pkgs + * wrapperArgs: string[] - arguments to pass to the wrapper + */ + mkWrappedExecutable = {pkg, exe ? pkg.meta.mainProgram, wrapperArgs}: let inherit (pkgs) lib makeWrapper; in pkgs.stdenv.mkDerivation { + name = "${pkg.name}-wrap-${exe}"; + nativeBuildInputs = [ makeWrapper ]; + phases = ["installPhase"]; + installPhase = '' + mkdir -p $out/bin + makeWrapper ${pkg}/bin/${exe} $out/bin/${exe} ${lib.concatStringsSep " " wrapperArgs} + ''; + }; + wrapedNixPrograms = [ + (mkWrappedExecutable {pkg = pkgs.nix; exe = "nix-build"; wrapperArgs = ["--add-flags" "\"--log-format\"" "--add-flags" "bar-with-logs"];}) + (mkWrappedExecutable {pkg = pkgs.nix; exe = "nix-shell"; wrapperArgs = ["--add-flags" "\"--log-format\"" "--add-flags" "bar"];}) + ]; +in { # kernel boot.kernelPackages = pkgs.linuxPackages_latest; @@ -26,7 +46,7 @@ ranger smartmontools ddrescue - ]; + ] ++ wrapedNixPrograms; programs.git.enable = true; programs.git.config = {