42 lines
890 B
Bash
42 lines
890 B
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
SRC="/etc/X11/fluxbox/fluxbox-menu"
|
|
DST_DIR="/var/run/retrodebian"
|
|
DST="$DST_DIR/final-fluxbox-menu"
|
|
TEMPLATE="/opt/retrodebian/fluxbox/retrodebian-menu.section"
|
|
|
|
mkdir -p "$DST_DIR"
|
|
|
|
TMP="$DST.tmp"
|
|
|
|
logger -t "fluxbox/update-menu.sh" "Regenerating menus..."
|
|
|
|
sed \
|
|
-e '/(Eterm/d' \
|
|
-e '/(Rxvt-Unicode (Black/d' \
|
|
-e '/(XTerm/d' \
|
|
"$SRC" > "$TMP.base"
|
|
|
|
if [ -f "$TEMPLATE" ]; then
|
|
awk -v template="$TEMPLATE" '
|
|
BEGIN { inserted = 0 }
|
|
{
|
|
print
|
|
if (!inserted && $0 ~ /^\[begin\] /) {
|
|
while ((getline line < template) > 0) {
|
|
print line
|
|
}
|
|
close(template)
|
|
inserted = 1
|
|
}
|
|
}
|
|
' "$TMP.base" > "$TMP"
|
|
else
|
|
mv "$TMP.base" "$TMP"
|
|
fi
|
|
|
|
rm -f "$TMP.base"
|
|
mv "$TMP" "$DST"
|
|
|
|
fluxbox-remote reconfigure >/dev/null 2>&1 || true |