generated from VLADIMIR/template
59 lines
2.2 KiB
Bash
Executable File
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 "Пресет «Юрист по ПО» доступен при создании новой сессии."
|