Files
2026-08-18 23:05:48 +07:00

59 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Устанавливает агента-пресет «Юрист по ПО» в пользовательский корень
# пресетов DeepSeek Harness ($DSH_HOME/.agent-presets/software-lawyer).
#
# Использование:
# ./agents/software-lawyer/install.sh # установка (идемпотентно)
# ./agents/software-lawyer/install.sh --force # перезаписать существующий пресет
#
# После установки пресет «Юрист по ПО» появляется в списке агентов при
# создании новой сессии (обнаружение пресетов читает каталог при каждом
# вызове, перезапуск не требуется).
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SOURCE_DIR="$SCRIPT_DIR"
DSH_HOME="${DSH_HOME:-$HOME/.dsh}"
TARGET_DIR="$DSH_HOME/.agent-presets/software-lawyer"
FORCE=0
for arg in "$@"; do
case "$arg" in
--force|-f) FORCE=1 ;;
-h|--help)
sed -n '2,14p' "$0" | sed 's/^# \{0,1\}//'
exit 0
;;
*) echo "Неизвестный аргумент: $arg" >&2; exit 2 ;;
esac
done
if [[ -d "$TARGET_DIR" && "$FORCE" -ne 1 ]]; then
echo "Пресет уже установлен: $TARGET_DIR"
echo "Для перезаписи запустите с --force."
exit 0
fi
mkdir -p "$DSH_HOME/.agent-presets"
if [[ -d "$TARGET_DIR" ]]; then
rm -rf "$TARGET_DIR"
fi
mkdir -p "$TARGET_DIR"
# Копируем содержимое пресета, исключая сам скрипт установки.
shopt -s dotglob
for entry in "$SOURCE_DIR"/*; do
[[ "$(basename "$entry")" == "install.sh" ]] && continue
cp -R "$entry" "$TARGET_DIR"/
done
shopt -u dotglob
# Пресет-каталоги в DSH создаются с правами владельца (0o700/0o600); копия
# наследует umask — приведём к аналогичному виду.
chmod -R u+rwX,go-rwx "$TARGET_DIR"
echo "Установлено: $TARGET_DIR"
echo "Пресет «Юрист по ПО» доступен при создании новой сессии."