penguin/tinyproxy

An L4 proxy designed to act as a tiny transparent shim

devtools/cflow.sh

raw ยท 769 bytes

#!/bin/sh
set -eu
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(realpath "$SCRIPT_DIR/../")"

MAIN="${1:-main}"

IGNORE='
LOG_ERROR
LOG_INFO
LOG_WARN
LOG_DEBUG
calloc
clock_gettime
fclose
feof
ferror
fgets
fopen
fprintf
fputc
fputs
fread
free
getpid
htons
inet_ntop
inet_pton
isspace
localtime_compat
localtime_r
localtime_s
malloc
memcmp
memcpy
memmove
memset
ntohs
printf
putc
putchar
puts
realloc
snprintf
strchr
strcmp
strcpy
strdup
strerror
strftime
strlen
strncmp
strrchr
strtok_r
strtol
strtoul
time
trim
unlink
'

IGNORE_RE="$(printf '%s\n' "$IGNORE" \
	| sed '/^[[:space:]]*$/d' \
	| paste -sd '|' -)"

cd "$PROJECT_ROOT"
cflow --brief -n --main="$MAIN" src/*.c |
	grep -Ev "^[[:space:]]+[[:digit:]]+[[:space:]]*(${IGNORE_RE})\\("