Unverified Commit 6361b223 authored by Silvan Mosberger's avatar Silvan Mosberger Committed by GitHub
Browse files

Merge pull request #267048 from narang99/hariom/257748/check-by-name-msg

fix long error messages in nix-instantiate
parents 5d80334f ca97497b
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -5,8 +5,10 @@
  rustfmt,
  clippy,
  mkShell,
  makeWrapper,
}:
let
  runtimeExprPath = ./src/eval.nix;
  package =
    rustPlatform.buildRustPackage {
      name = "nixpkgs-check-by-name";
@@ -16,7 +18,9 @@ let
        nix
        rustfmt
        clippy
        makeWrapper
      ];
      env.NIX_CHECK_BY_NAME_EXPR_PATH = "${runtimeExprPath}";
      # Needed to make Nix evaluation work inside the nix build
      preCheck = ''
        export TEST_ROOT=$(pwd)/test-tmp
@@ -34,7 +38,12 @@ let
        cargo fmt --check
        cargo clippy -- -D warnings
      '';
      postInstall = ''
        wrapProgram $out/bin/nixpkgs-check-by-name \
          --set NIX_CHECK_BY_NAME_EXPR_PATH "$NIX_CHECK_BY_NAME_EXPR_PATH"
      '';
      passthru.shell = mkShell {
        env.NIX_CHECK_BY_NAME_EXPR_PATH = toString runtimeExprPath;
        inputsFrom = [ package ];
      };
    };
+4 −5
Original line number Diff line number Diff line
@@ -35,8 +35,6 @@ enum AttributeVariant {
    Other,
}

const EXPR: &str = include_str!("eval.nix");

/// Check that the Nixpkgs attribute values corresponding to the packages in pkgs/by-name are
/// of the form `callPackage <package_file> { ... }`.
/// See the `eval.nix` file for how this is achieved on the Nix side
@@ -60,9 +58,10 @@ pub fn check_values(
        attrs_file_path.display()
    ))?;

    let expr_path = std::env::var("NIX_CHECK_BY_NAME_EXPR_PATH")
        .context("Could not get environment variable NIX_CHECK_BY_NAME_EXPR_PATH")?;
    // With restrict-eval, only paths in NIX_PATH can be accessed, so we explicitly specify the
    // ones needed needed

    let mut command = process::Command::new("nix-instantiate");
    command
        // Inherit stderr so that error messages always get shown
@@ -76,8 +75,6 @@ pub fn check_values(
            "--readonly-mode",
            "--restrict-eval",
            "--show-trace",
            "--expr",
            EXPR,
        ])
        // Pass the path to the attrs_file as an argument and add it to the NIX_PATH so it can be
        // accessed in restrict-eval mode
@@ -96,6 +93,8 @@ pub fn check_values(
        command.arg("-I");
        command.arg(path);
    }
    command.args(["-I", &expr_path]);
    command.arg(expr_path);

    let result = command
        .output()