opnsense-ports/devel/root/scripts/remove-modules-from-modulemap.sh
Franco Fichtner fb17078f21 */*: sync with upstream
Taken from: FreeBSD
2023-01-10 19:10:29 +01:00

27 lines
423 B
Bash
Executable file

#!/bin/sh
# Script removes module definition blocks in LLVM/Clang .modulemap
# files in-place in the file path stored in the variable MODULEMAP
sp='[[:space:]]'
mdls="" ; i=0
for m in "$@" ; do
i=$((i+1))
mdls="$mdls($m)"
[ $i -ne $# ] && mdls="$mdls|"
done
script="\
/^$sp*(explicit)?$sp*module$sp*\"$mdls\"$sp*\{$sp*\$/ {
:l
N
s/}/}/
tx
bl
:x
d
}\
"
sed -i '' -E "$script" "$MODULEMAP"