diff options
author | Mu Qiao <qiaomuf@gentoo.org> | 2011-05-19 19:24:56 +0800 |
---|---|---|
committer | Mu Qiao <qiaomuf@gentoo.org> | 2011-05-23 23:04:44 +0800 |
commit | fa45a6a4d9cd33f79d3837a6e7759a8f843bf72f (patch) | |
tree | 027371c2c8723ea923272305d04a1dc725cd70b3 | |
parent | Parser: fix var_ref in arithmetic expansion (diff) | |
download | libbash-fa45a6a4d9cd33f79d3837a6e7759a8f843bf72f.tar.gz libbash-fa45a6a4d9cd33f79d3837a6e7759a8f843bf72f.tar.bz2 libbash-fa45a6a4d9cd33f79d3837a6e7759a8f843bf72f.zip |
Utility: add a script for metadata correctness statistic
-rw-r--r-- | Makefile.am | 1 | ||||
-rwxr-xr-x | utils/metadata_diff.sh | 36 |
2 files changed, 37 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index 171af0b..011f011 100644 --- a/Makefile.am +++ b/Makefile.am @@ -224,6 +224,7 @@ EXTRA_DIST = bashast/bashast.g \ scripts/source_return.sh \ scripts/illegal_script.sh \ scripts/foo.eclass \ + utils/metadata_diff.sh \ test_coverage.sh \ autogen.sh \ $(BASH_TESTS) \ diff --git a/utils/metadata_diff.sh b/utils/metadata_diff.sh new file mode 100755 index 0000000..1e9d60f --- /dev/null +++ b/utils/metadata_diff.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +source /etc/make.conf + +outputdir=${1:-$(mktemp -d)} + +if [[ ! (-d $outputdir && -w $outputdir) ]] +then + echo "$outputdir is not writable" +fi + +echo "Generating metadata at $outputdir" + +./instruo -D ${PORTDIR:-/usr/portage/} -o $outputdir 2>$outputdir/error_output + +echo "Running diff..." + +declare -i error_count=0 total_num=0 + +for category_dir in ${PORTDIR:-/usr/portage}/* +do + category=${category_dir##*\/} + cache_dir=${PORTDIR:-/usr/portage}/metadata/cache/${category} + if [[ -d $cache_dir ]] + then + for path in $cache_dir/* + do + filename=${path##*\/} + diff -u $cache_dir/$file $outputdir/$category/$filename > $outputdir/$category/$filename.diff + error_count+=$? + total_num+=1 + done + fi +done + +echo "$((total_num - error_count)) out of $total_num metadata files are correct. See file.diff for more details." |