2023-04-11 21:15:01 +08:00

44 lines
802 B
Bash

#!/bin/sh
ROOTER=/usr/lib/rooter
log() {
modlog "Delete SMS" "$@"
}
CURRMODEM=$1
shift 1
SLOTS="$@"
log "$SLOTS"
COMMPORT="/dev/ttyUSB"$(uci get modem.modem$CURRMODEM.commport)
SMSLOC=$(uci -q get modem.modem$CURRMODEM.smsloc)
LOCKDIR="/tmp/smslock$CURRMODEM"
PIDFILE="${LOCKDIR}/PID"
while [ true ]; do
if mkdir "${LOCKDIR}" &>/dev/null; then
echo "$$" > "${PIDFILE}"
for SLOT in $SLOTS
do
ATCMDD="AT+CPMS=\"$SMSLOC\";+CMGD=$SLOT"
OX=$($ROOTER/gcom/gcom-locked "$COMMPORT" "run-at.gcom" "$CURRMODEM" "$ATCMDD")
log "$OX"
done
uci set modem.modem$CURRMODEM.smsnum=999
uci commit modem
break
else
OTHERPID="$(cat "${PIDFILE}")"
if [ $? = 0 ]; then
if ! kill -0 $OTHERPID &>/dev/null; then
rm -rf "${LOCKDIR}"
fi
fi
sleep 1
fi
done
rm -rf "${LOCKDIR}"