lunatic/listglobals.sh: allow passing multiple file names.

git-svn-id: https://svn.eduke32.com/eduke32@3915 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2013-06-30 20:38:37 +00:00
parent fb0c13f9f2
commit 16f2f4c475

View file

@ -2,16 +2,30 @@
if [ -z "$1" ]; then
# S or G can be used to display SETGLOBALs or GETGLOBALs, respectively
echo "Usage: $0 <file.lua> [S|G]"
echo "Usage: $0 [S|G] <files.lua...>"
exit 1;
fi
GS=
if [ "$1" = G ]; then
GS=G
shift
elif [ "$1" = S ]; then
GS=S
shift
fi
# Lua 5.2 required to parse ::label:: / goto generated by LunaCON.
LUAC=luac
# Strip LuaJIT specific syntax first. Run luac and extract interesting lines.
sed -r -e "s/[0-9]+U?LL/0/g" "$1" | $LUAC -p -l - | grep "$2ETTABUP.*; _ENV " |
# Reformat them.
sed -e 's/.*\[\(.*\)\].*\([SG]ET\)TABUP.*"\(.*\)".*/\1: \2 \3/' |
# Mark where the new module environment starts.
sed -e 's/GET module/& ____________________/'
for f in "$@"; do
echo "[$f]"
# Strip LuaJIT specific syntax first. Run luac and extract interesting lines.
sed -r -e "s/[0-9]+U?LL/0/g" "$f" | $LUAC -p -l - | grep "${GS}ETTABUP.*; _ENV " |
# Reformat them.
sed -e 's/.*\[\(.*\)\].*\([SG]ET\)TABUP.*"\(.*\)".*/\1: \2 \3/' |
# Mark where the new module environment starts.
sed -e 's/GET module/& ____________________/'
echo
done