Без него [ -n "$ctx_pct" ] && ... возвращал exit 1 когда ctx пустой, и Claude Code прятал всю строку статуса. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
57 lines
2.0 KiB
Bash
57 lines
2.0 KiB
Bash
#!/bin/bash
|
||
input=$(cat)
|
||
cwd=$(echo "$input" | jq -r '.cwd')
|
||
model=$(echo "$input" | jq -r '.model.display_name // empty')
|
||
five_pct=$(echo "$input" | jq -r '.rate_limits.five_hour.used_percentage // empty')
|
||
five_reset=$(echo "$input" | jq -r '.rate_limits.five_hour.resets_at // empty')
|
||
week_pct=$(echo "$input" | jq -r '.rate_limits.seven_day.used_percentage // empty')
|
||
week_reset=$(echo "$input" | jq -r '.rate_limits.seven_day.resets_at // empty')
|
||
ctx_pct=$(echo "$input" | jq -r '.context_window.used_percentage // empty')
|
||
|
||
branch=$(git -C "$cwd" --no-optional-locks symbolic-ref --short HEAD 2>/dev/null)
|
||
|
||
short_cwd="${cwd/#$HOME/\~}"
|
||
printf "\033[01;34m%s\033[00m" "$short_cwd"
|
||
|
||
[ -n "$branch" ] && printf " \033[01;33m[%s]\033[00m" "$branch"
|
||
[ -n "$model" ] && printf " \033[00;36m%s\033[00m" "$model"
|
||
|
||
# Форматирует оставшееся время до сброса лимита
|
||
fmt_remaining() {
|
||
local reset_ts="$1"
|
||
local now
|
||
now=$(date +%s)
|
||
local diff=$(( reset_ts - now ))
|
||
[ "$diff" -le 0 ] && echo "скоро" && return
|
||
local d=$(( diff / 86400 ))
|
||
local h=$(( (diff % 86400) / 3600 ))
|
||
local m=$(( (diff % 3600) / 60 ))
|
||
if [ "$d" -gt 0 ]; then
|
||
echo "${d}д${h}ч"
|
||
elif [ "$h" -gt 0 ]; then
|
||
echo "${h}ч${m}м"
|
||
else
|
||
echo "${m}м"
|
||
fi
|
||
}
|
||
|
||
if [[ "$model" == *[Dd]eep[Ss]eek* ]]; then
|
||
cache_file="$HOME/.cache/ai-setup/deepseek_balance"
|
||
if [ -f "$cache_file" ]; then
|
||
balance=$(head -1 "$cache_file")
|
||
[ -n "$balance" ] && printf " \033[00;35m\$%s\033[00m" "$balance"
|
||
fi
|
||
else
|
||
if [ -n "$five_pct" ] && [ -n "$five_reset" ]; then
|
||
remaining=$(fmt_remaining "$five_reset")
|
||
printf " \033[00;35m%s:$(printf '%.0f' "$five_pct")%%\033[00m" "$remaining"
|
||
fi
|
||
if [ -n "$week_pct" ] && [ -n "$week_reset" ]; then
|
||
remaining=$(fmt_remaining "$week_reset")
|
||
printf " \033[00;35m%s:$(printf '%.0f' "$week_pct")%%\033[00m" "$remaining"
|
||
fi
|
||
fi
|
||
|
||
[ -n "$ctx_pct" ] && printf " \033[00;90mctx:$(printf '%.0f' "$ctx_pct")%%\033[00m"
|
||
exit 0
|