analyze-codebase-paths ( paths -- )


Vocabulary
codebase-analyzer

Inputs
pathsan object


Outputs
None

Definition


: analyze-codebase-paths ( paths -- )
{
[
partition-binary
[ length "%d binary files" sprintf print ]
[ length "%d text files" sprintf print ] bi*
]
[
github-files
[ "has .github files" print ... ] unless-empty
]
[
license-files [
[ length "has %d license files" sprintf print ]
[ ... ] bi
] unless-empty
]
[
readme-files
[ "has readme files" print ... ] unless-empty
]
[
owners-files
[ "has owners files" print ... ] unless-empty
]
[
version-files
[ "has version files" print ... ] unless-empty
]
[
{
[ dot-files ]
[ rc-files diff ]
[ ignore-files diff ]
} cleave [ "has dot files" print ... ] unless-empty
]
[
rc-files [
[ length "has %d rc files" sprintf print ]
[ ... ] bi
] unless-empty
]
[
configure-files
[ "uses configure files" print ... ] unless-empty
]
[
automake-files
[ "uses automake" print ... ] unless-empty
]
[ make-files [ "uses make" print ... ] unless-empty ]
[ nmake-files [ "uses nmake" print ... ] unless-empty ]
[ cmake-files [ "uses cmake" print ... ] unless-empty ]
[
gradle-files
[ "uses gradle" print ... ] unless-empty
]
[
cargo-files
[ "uses rust/cargo" print ... ] unless-empty
]
[
julia-project-files
[ "uses julia Project.toml" print ... ] unless-empty
]
[
in-files
[ "uses 'in' files" print ... ] unless-empty
]
[
ignore-files [
[ length "has %d ignore files" sprintf print ]
[ ... ] bi
] unless-empty nl
]
[
[ upper-files ] keep {
[ license-files diff ]
[ readme-files diff ]
[ owners-files diff ]
[ version-files diff ]
} cleave [
[
length
"has %d UPPER files (minus license,readme,owner,version)"
sprintf print
] [ ... ] bi
] unless-empty nl
]
[
"Top 20 largest files" print
file-sizes sort-values 20 index-or-length tail*
[ normalize-path ] map-keys reverse assoc. nl
]
[
"Top 10 file extension sizes" print
sum-sizes-by-extension 10 index-or-length tail*
reverse assoc. nl
]
[
"Top 10 text file line counts" print
sum-line-counts-by-extension 10 index-or-length
tail* reverse assoc. nl
]
[
"Top 10 file extension counts" print
count-by-file-extension 10 index-or-length tail*
reverse assoc. nl
]
} cleave ;