46 lines
1.5 KiB
Bash
46 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
# Проверка root/sudo
|
||
if ! command -v sudo >/dev/null 2>&1; then
|
||
echo "Ошибка: sudo не найден."
|
||
exit 1
|
||
fi
|
||
|
||
# Установка git и curl, если отсутствуют
|
||
if ! command -v git >/dev/null 2>&1 || ! command -v curl >/dev/null 2>&1; then
|
||
sudo apt update
|
||
sudo apt install -y git curl
|
||
fi
|
||
|
||
# Установка Docker, если отсутствует
|
||
if ! command -v docker >/dev/null 2>&1; then
|
||
curl -fsSL https://get.docker.com -o /tmp/get-docker.sh
|
||
sudo sh /tmp/get-docker.sh
|
||
rm -f /tmp/get-docker.sh
|
||
fi
|
||
|
||
# Создание пользователя medicine, если его ещё нет
|
||
if ! id -u medicine >/dev/null 2>&1; then
|
||
sudo adduser --disabled-password --gecos "" medicine
|
||
fi
|
||
|
||
# Добавление пользователя medicine в группу docker
|
||
sudo usermod -aG docker medicine
|
||
|
||
# Клонирование репозитория и запуск install.sh от пользователя medicine
|
||
sudo -u medicine bash <<'EOF'
|
||
set -euo pipefail
|
||
|
||
cd ~
|
||
if [ ! -d "$HOME/medicine-config" ]; then
|
||
git clone --depth 1 --branch main https://git.med-logic.ru/medlogic/medicine-config.git
|
||
else
|
||
echo "Каталог $HOME/medicine-config уже существует, пропускаю clone."
|
||
fi
|
||
|
||
bash "$HOME/medicine-config/dashboard/install.sh"
|
||
EOF
|
||
|
||
echo "Готово."
|
||
echo "Для применения membership в группе docker может понадобиться перелогиниться пользователем medicine." |