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 = {