diff --git a/warp.sh b/warp.sh index 109266a..2c384f1 100644 --- a/warp.sh +++ b/warp.sh @@ -80,7 +80,15 @@ CONF save_config_val() { local key="$1" value="$2" 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 echo "${key}=\"${value}\"" >> "$WARP_CONF" fi @@ -1622,7 +1630,7 @@ bot_poll_cycle() { [ -z "$response" ] && sleep 2 && return 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 IFS=$'\t' read -r ok cnt <<< "$header" [ "$ok" != "true" ] && sleep 5 && return @@ -1639,7 +1647,7 @@ bot_poll_cycle() { (.message.chat.id // ""), (.message.text // "") ] | @tsv - ' 2>/dev/null) + ' 2>/dev/null) || true while IFS=$'\t' read -r uid cbd cbi cci cmi mci mtx; do [ -z "$uid" ] && continue