Loading pkgs/test/nixpkgs-check-by-name/src/main.rs +3 −9 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ mod utils; use crate::structure::check_structure; use anyhow::Context; use check_result::{flatten_check_results, write_check_result}; use check_result::write_check_result; use clap::{Parser, ValueEnum}; use colored::Colorize; use std::io; Loading Loading @@ -91,14 +91,8 @@ pub fn check_nixpkgs<W: io::Write>( let check_result = check_structure(&nixpkgs_path); if let Some(nixpkgs) = write_check_result(&mut error_writer, check_result)? { // Only if we could successfully parse the structure, we do the semantic checks let check_result = flatten_check_results( [ eval::check_values(version, &nixpkgs, eval_accessible_paths), references::check_references(&nixpkgs), ], |_| (), ); // Only if we could successfully parse the structure, we do the evaluation checks let check_result = eval::check_values(version, &nixpkgs, eval_accessible_paths); write_check_result(&mut error_writer, check_result)?; } } Loading pkgs/test/nixpkgs-check-by-name/src/references.rs +14 −17 Original line number Diff line number Diff line use crate::check_result::{flatten_check_results, pass, CheckError, CheckResult}; use crate::structure::Nixpkgs; use crate::utils; use crate::utils::LineIndex; Loading @@ -19,13 +18,13 @@ struct PackageContext<'a> { /// Check that every package directory in pkgs/by-name doesn't link to outside that directory. /// Both symlinks and Nix path expressions are checked. pub fn check_references(nixpkgs: &Nixpkgs) -> CheckResult<()> { // Check the directories for each package separately let check_results = nixpkgs.package_names.iter().map(|package_name| { let relative_package_dir = Nixpkgs::relative_dir_for_package(package_name); pub fn check_references( relative_package_dir: &Path, absolute_package_dir: &Path, ) -> CheckResult<()> { let context = PackageContext { relative_package_dir: &relative_package_dir, absolute_package_dir: &nixpkgs.path.join(&relative_package_dir), relative_package_dir: &relative_package_dir.to_path_buf(), absolute_package_dir: &absolute_package_dir.to_path_buf(), }; // The empty argument here is the subpath under the package directory to check Loading @@ -34,8 +33,6 @@ pub fn check_references(nixpkgs: &Nixpkgs) -> CheckResult<()> { "While checking the references in package directory {}", relative_package_dir.display() )) }); flatten_check_results(check_results, |_| ()) } /// Checks for a specific path to not have references outside Loading pkgs/test/nixpkgs-check-by-name/src/structure.rs +7 −0 Original line number Diff line number Diff line use crate::check_result::{ flatten_check_results, pass, sequence_check_results, CheckError, CheckResult, }; use crate::references; use crate::utils; use crate::utils::{BASE_SUBPATH, PACKAGE_NIX_FILENAME}; use lazy_static::lazy_static; Loading Loading @@ -154,11 +155,17 @@ pub fn check_structure(path: &Path) -> CheckResult<Nixpkgs> { pass(()) }; let reference_check_result = references::check_references( &relative_package_dir, &path.join(&relative_package_dir), ); flatten_check_results( [ name_check_result, shard_check_result, package_nix_check_result, reference_check_result, ], |_| package_name.clone(), ) Loading Loading
pkgs/test/nixpkgs-check-by-name/src/main.rs +3 −9 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ mod utils; use crate::structure::check_structure; use anyhow::Context; use check_result::{flatten_check_results, write_check_result}; use check_result::write_check_result; use clap::{Parser, ValueEnum}; use colored::Colorize; use std::io; Loading Loading @@ -91,14 +91,8 @@ pub fn check_nixpkgs<W: io::Write>( let check_result = check_structure(&nixpkgs_path); if let Some(nixpkgs) = write_check_result(&mut error_writer, check_result)? { // Only if we could successfully parse the structure, we do the semantic checks let check_result = flatten_check_results( [ eval::check_values(version, &nixpkgs, eval_accessible_paths), references::check_references(&nixpkgs), ], |_| (), ); // Only if we could successfully parse the structure, we do the evaluation checks let check_result = eval::check_values(version, &nixpkgs, eval_accessible_paths); write_check_result(&mut error_writer, check_result)?; } } Loading
pkgs/test/nixpkgs-check-by-name/src/references.rs +14 −17 Original line number Diff line number Diff line use crate::check_result::{flatten_check_results, pass, CheckError, CheckResult}; use crate::structure::Nixpkgs; use crate::utils; use crate::utils::LineIndex; Loading @@ -19,13 +18,13 @@ struct PackageContext<'a> { /// Check that every package directory in pkgs/by-name doesn't link to outside that directory. /// Both symlinks and Nix path expressions are checked. pub fn check_references(nixpkgs: &Nixpkgs) -> CheckResult<()> { // Check the directories for each package separately let check_results = nixpkgs.package_names.iter().map(|package_name| { let relative_package_dir = Nixpkgs::relative_dir_for_package(package_name); pub fn check_references( relative_package_dir: &Path, absolute_package_dir: &Path, ) -> CheckResult<()> { let context = PackageContext { relative_package_dir: &relative_package_dir, absolute_package_dir: &nixpkgs.path.join(&relative_package_dir), relative_package_dir: &relative_package_dir.to_path_buf(), absolute_package_dir: &absolute_package_dir.to_path_buf(), }; // The empty argument here is the subpath under the package directory to check Loading @@ -34,8 +33,6 @@ pub fn check_references(nixpkgs: &Nixpkgs) -> CheckResult<()> { "While checking the references in package directory {}", relative_package_dir.display() )) }); flatten_check_results(check_results, |_| ()) } /// Checks for a specific path to not have references outside Loading
pkgs/test/nixpkgs-check-by-name/src/structure.rs +7 −0 Original line number Diff line number Diff line use crate::check_result::{ flatten_check_results, pass, sequence_check_results, CheckError, CheckResult, }; use crate::references; use crate::utils; use crate::utils::{BASE_SUBPATH, PACKAGE_NIX_FILENAME}; use lazy_static::lazy_static; Loading Loading @@ -154,11 +155,17 @@ pub fn check_structure(path: &Path) -> CheckResult<Nixpkgs> { pass(()) }; let reference_check_result = references::check_references( &relative_package_dir, &path.join(&relative_package_dir), ); flatten_check_results( [ name_check_result, shard_check_result, package_nix_check_result, reference_check_result, ], |_| package_name.clone(), ) Loading