Files
ddadmin 7cd55ac988 refactor(dotfiles): унифицированы skills и упрощен bash_custom
Зачем: убрать дублирование skills между агентами и сократить кастомный bash слой до реально необходимых настроек.
Что: skill conventional-commits перенесен в agents/.agents/skills, добавлены symlink-bridge пакеты для opencode и codex, обновлен README, очищен bash/.bash_custom от дублирования с системным ~/.bashrc, добавлены базовые zed settings/keymap файлы.
Проверка: stow -nvv bash agents opencode codex zed и bash -n bash/.bash_custom.
2026-02-21 19:22:10 +03:00

46 lines
1.4 KiB
Bash

# ---------- Цвета ----------
RED="\[\033[0;31m\]"
GREEN="\[\033[0;32m\]"
YELLOW="\[\033[1;33m\]"
BLUE="\[\033[1;34m\]"
PURPLE="\[\033[0;35m\]"
RESET="\[\033[0m\]"
# Не даём стандартному venv ломать наш PS1
export VIRTUAL_ENV_DISABLE_PROMPT=1
# ---------- Функция, которая вызывается перед показом приглашения ----------
set_bash_prompt() {
local exit_code=$?
# Символ приглашения: красный, если предыдущая команда упала
local prompt_symbol="$"
if [ "$exit_code" -ne 0 ]; then
prompt_symbol="${RED}\$${RESET}"
fi
# ---- venv ----
local venv_part=""
if [ -n "$VIRTUAL_ENV" ]; then
venv_part="${BLUE}($(basename "$VIRTUAL_ENV"))${RESET} "
fi
# ---- git branch ----
local branch=""
# Быстрее и проще, чем парсить `git branch` через sed
branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
local git_part=""
if [ -n "$branch" ] && [ "$branch" != "HEAD" ]; then
git_part=" ${PURPLE}($branch)${RESET}"
fi
# ---- Собираем двухстрочный PS1 ----
# Пример:
# (myenv) dmitry@wsl:/mnt/d/projects/myproj (main)
# $
PS1="\n${venv_part}${GREEN}\u@\h${RESET}:${YELLOW}\w${RESET}${git_part}\n${prompt_symbol} "
}
# Запускаем set_bash_prompt перед каждым показом приглашения
PROMPT_COMMAND=set_bash_prompt