Loading pkgs/test/nixpkgs-check-by-name/default.nix +9 −0 Original line number Diff line number Diff line Loading @@ -5,8 +5,10 @@ rustfmt, clippy, mkShell, makeWrapper, }: let runtimeExprPath = ./src/eval.nix; package = rustPlatform.buildRustPackage { name = "nixpkgs-check-by-name"; Loading @@ -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 Loading @@ -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 ]; }; }; Loading pkgs/test/nixpkgs-check-by-name/src/eval.rs +4 −5 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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() Loading Loading
pkgs/test/nixpkgs-check-by-name/default.nix +9 −0 Original line number Diff line number Diff line Loading @@ -5,8 +5,10 @@ rustfmt, clippy, mkShell, makeWrapper, }: let runtimeExprPath = ./src/eval.nix; package = rustPlatform.buildRustPackage { name = "nixpkgs-check-by-name"; Loading @@ -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 Loading @@ -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 ]; }; }; Loading
pkgs/test/nixpkgs-check-by-name/src/eval.rs +4 −5 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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() Loading