mod private
{
#[ allow( unused_imports, clippy ::wildcard_imports ) ]
use crate ::tool :: *;
pub fn readme_path( dir_path: &std ::path ::Path ) -> Result< std ::path ::PathBuf, std ::io ::Error >
{
if let Some( path ) = readme_in_dir_find( &dir_path.join( ".github" ) )
{
std ::io ::Result ::Ok( path )
}
else if let Some( path ) = readme_in_dir_find( dir_path )
{
std ::io ::Result ::Ok( path )
}
else if let Some( path ) = readme_in_dir_find( &dir_path.join( "docs" ) )
{
std ::io ::Result ::Ok( path )
}
else
{
Err( std ::io ::Error ::new( std ::io ::ErrorKind ::NotFound, format!( "Fail to find README.md at {}", &dir_path.display() ) ) )
}
}
fn readme_in_dir_find( path: &std ::path ::Path ) -> Option< std ::path ::PathBuf >
{
std ::fs ::read_dir( path )
.ok()?
.filter_map( core ::result ::Result ::ok )
.filter( | p | p.path().is_file() )
.filter_map( | f |
{
let l_f = f.file_name().to_ascii_lowercase();
if l_f == "readme.md"
{
return Some( f.file_name() )
}
None
})
.max()
.map( std ::path ::PathBuf ::from )
}
}
crate ::mod_interface!
{
own use readme_path;
}