Fix bot crash: pipefail+echo|jq killed daemon, add || true; replace sed with while-read in save_config_val

Made-with: Cursor
This commit is contained in:
anten-ka
2026-03-22 15:01:07 +03:00
parent ca8cd07f24
commit 9fcee1d985

14
warp.sh
View File

@@ -80,7 +80,15 @@ CONF
save_config_val() { save_config_val() {
local key="$1" value="$2" local key="$1" value="$2"
if grep -q "^${key}=" "$WARP_CONF" 2>/dev/null; then if grep -q "^${key}=" "$WARP_CONF" 2>/dev/null; then
sed -i "s|^${key}=.*|${key}=\"${value}\"|" "$WARP_CONF" local tmpf; tmpf=$(mktemp)
while IFS= read -r line; do
if [[ "$line" == "${key}="* ]]; then
echo "${key}=\"${value}\""
else
echo "$line"
fi
done < "$WARP_CONF" > "$tmpf"
mv "$tmpf" "$WARP_CONF"
else else
echo "${key}=\"${value}\"" >> "$WARP_CONF" echo "${key}=\"${value}\"" >> "$WARP_CONF"
fi fi
@@ -1622,7 +1630,7 @@ bot_poll_cycle() {
[ -z "$response" ] && sleep 2 && return [ -z "$response" ] && sleep 2 && return
local header local header
header=$(echo "$response" | jq -r '[.ok // "false", (.result | length)] | @tsv' 2>/dev/null) header=$(echo "$response" | jq -r '[.ok // "false", (.result | length)] | @tsv' 2>/dev/null) || true
local ok cnt local ok cnt
IFS=$'\t' read -r ok cnt <<< "$header" IFS=$'\t' read -r ok cnt <<< "$header"
[ "$ok" != "true" ] && sleep 5 && return [ "$ok" != "true" ] && sleep 5 && return
@@ -1639,7 +1647,7 @@ bot_poll_cycle() {
(.message.chat.id // ""), (.message.chat.id // ""),
(.message.text // "") (.message.text // "")
] | @tsv ] | @tsv
' 2>/dev/null) ' 2>/dev/null) || true
while IFS=$'\t' read -r uid cbd cbi cci cmi mci mtx; do while IFS=$'\t' read -r uid cbd cbi cci cmi mci mtx; do
[ -z "$uid" ] && continue [ -z "$uid" ] && continue