tests.nixpkgs-check-by-name: Intermediate PackageNixNonExistent error

This commit is contained in:
Silvan Mosberger 2023-10-20 00:10:29 +02:00
parent e3979d14cd
commit 64f5eb616e
2 changed files with 23 additions and 11 deletions

View file

@ -7,6 +7,9 @@ use std::io;
use std::path::PathBuf; use std::path::PathBuf;
pub enum CheckError { pub enum CheckError {
PackageNixNonExistent {
relative_package_dir: PathBuf,
},
PackageNixDir { PackageNixDir {
relative_package_dir: PathBuf, relative_package_dir: PathBuf,
}, },
@ -72,6 +75,12 @@ impl CheckError {
impl fmt::Display for CheckError { impl fmt::Display for CheckError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self { match self {
CheckError::PackageNixNonExistent { relative_package_dir } =>
write!(
f,
"{}: Missing required \"{PACKAGE_NIX_FILENAME}\" file.",
relative_package_dir.display(),
),
CheckError::PackageNixDir { relative_package_dir } => CheckError::PackageNixDir { relative_package_dir } =>
write!( write!(
f, f,

View file

@ -1,4 +1,4 @@
use crate::check_result::{write_check_result, CheckError}; use crate::check_result::{pass, write_check_result, CheckError};
use crate::utils; use crate::utils;
use crate::utils::{ErrorWriter, BASE_SUBPATH, PACKAGE_NIX_FILENAME}; use crate::utils::{ErrorWriter, BASE_SUBPATH, PACKAGE_NIX_FILENAME};
use lazy_static::lazy_static; use lazy_static::lazy_static;
@ -126,18 +126,21 @@ impl Nixpkgs {
} }
let package_nix_path = package_path.join(PACKAGE_NIX_FILENAME); let package_nix_path = package_path.join(PACKAGE_NIX_FILENAME);
if !package_nix_path.exists() { let check_result = if !package_nix_path.exists() {
error_writer.write(&format!( CheckError::PackageNixNonExistent {
"{}: Missing required \"{PACKAGE_NIX_FILENAME}\" file.",
relative_package_dir.display(),
))?;
} else if package_nix_path.is_dir() {
let check_result = CheckError::PackageNixDir {
relative_package_dir: relative_package_dir.clone(), relative_package_dir: relative_package_dir.clone(),
} }
.into_result::<()>(); .into_result()
write_check_result(error_writer, check_result)?; } else if package_nix_path.is_dir() {
} CheckError::PackageNixDir {
relative_package_dir: relative_package_dir.clone(),
}
.into_result()
} else {
pass(())
};
write_check_result(error_writer, check_result)?;
package_names.push(package_name.clone()); package_names.push(package_name.clone());
} }