1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
# vim: ft=bash
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
ROOT="$(cd "${BASH_SOURCE%/*}/.." && pwd)"
SOURCES=($(find "$ROOT" -path '*/src/lib' -prune -o \( -name '*.cc' -o \
-name '*.h' -o -name '*.c' \) -printf '%P\n' | sort))
COMMONDIR="${BASH_SOURCE%/*}"
CXXFLAGS=($(pkg-config --cflags fuse id3tag) -I"$COMMONDIR/../src" \
-I/usr/local/include -DPACKAGE_VERSION=1 -DPACKAGE_NAME=\"mp3fs\" \
-DHAVE_FLAC -DHAVE_MP3 -DHAVE_VORBIS)
in_main () {
[ "${BASH_SOURCE[1]}" = "$0" ]
}
driver () {
check_func=$1
bad_msg_func=$2
bad_files=()
for src in "${SOURCES[@]}" ; do
if $check_func "$ROOT/$src" ; then
echo -e "${GREEN}GOOD${NC}: $src"
else
echo -e "${RED}BAD${NC} : $src"
bad_files+=("$ROOT/$src")
fi
done
if [ ${#bad_files[@]} -ne 0 ] ; then
echo
$bad_msg_func "${bad_files[*]}"
return 1
fi
}
multidriver () {
if [ -t 1 -a "$TRAVIS" != true ] ; then
tabular_multidriver "$@"
else
verbose_multidriver "$@"
fi
}
tabular_multidriver () {
check_names=("${@%,*}")
check_funcs=("${@#*,}")
longest_src=0
for src in "${SOURCES[@]}" ; do
if [ ${#src} -gt $longest_src ]; then
longest_src=${#src}
fi
done
firstcol=$(( longest_src + 6 ))
cols=()
printf "%-${firstcol}s"
for name in "${check_names[@]}" ; do
echo -n " [$name]"
cols+=($(( ${#name} + 2 )))
done
echo
everygood=y
for src in "${SOURCES[@]}" ; do
printf "%-${firstcol}s" " : $src"
allgood=y
for i in "${!check_funcs[@]}" ; do
func="${check_funcs[$i]}"
if $func "$ROOT/$src" >/dev/null 2>&1 ; then
printf " ${GREEN}%-${cols[$i]}s${NC}" " OK"
else
printf " ${RED}%-${cols[$i]}s${NC}" " NO"
allgood=n
everygood=n
fi
done
if [ $allgood = y ] ; then
echo -e "\r${GREEN}GOOD${NC}"
else
echo -e "\r${RED}BAD${NC}"
fi
done
if [ $everygood != y ] ; then
echo
echo "Run individual statictest/check_* scripts for steps to fix."
return 1
fi
}
verbose_multidriver () {
bad=n
for pair in "$@" ; do
name="${pair%,*}"
func="${pair#*,}"
echo "${name}:"
if ! driver $func : ; then
bad=y
fi
echo
done
if [ "$bad" = y ] ; then
return 1
fi
}
|