Улучшено обновление приложения: добавлена проверка на наличие локального файла letsencrypt_regru_api.py и улучшено логирование процесса скачивания с GitHub.

This commit is contained in:
Dmitriy Fofanov
2025-10-30 09:54:20 +03:00
parent a47d3cef10
commit 4777d832b7
2 changed files with 63 additions and 8 deletions

View File

@@ -69,7 +69,10 @@ Python скрипт теперь автоматически загружает
**Вариант 1: Автоматическая установка одной командой**
```bash
# Скачать и запустить установочный скрипт напрямую с GitHub
# Метод 1: Через pipe (рекомендуется)
curl -fsSL https://github.com/DFofanov/configure_nginx_manager/raw/refs/heads/master/letsencrypt_regru.sh | sudo bash
# Метод 2: Через bash -c
sudo bash -c "$(curl -fsSL https://github.com/DFofanov/configure_nginx_manager/raw/refs/heads/master/letsencrypt_regru.sh)"
```
@@ -176,21 +179,73 @@ tail -f /var/log/letsencrypt-regru/letsencrypt_regru.log
### Управление установкой
#### Обновление
```bash
# Обновить приложение до последней версии (из локального репозитория)
# Способ 1: Из локального репозитория (если клонировали)
cd configure_nginx_manager
git pull # Получить последние изменения
sudo bash letsencrypt_regru.sh update
# Обновить приложение одной командой (без клонирования)
# Способ 2: Обновление одной командой с GitHub (рекомендуется)
curl -fsSL https://github.com/DFofanov/configure_nginx_manager/raw/refs/heads/master/letsencrypt_regru.sh | sudo bash -s update
# Полностью удалить приложение (из репозитория)
# НЕ РАБОТАЕТ (неправильный синтаксис):
# sudo bash -c "$(curl -fsSL ...) update" # Аргументы не передаются!
```
#### Удаление
```bash
# Способ 1: Из локального репозитория
sudo bash letsencrypt_regru.sh uninstall
# Удалить приложение одной командой (без клонирования)
# Способ 2: Удаление одной командой с GitHub
curl -fsSL https://github.com/DFofanov/configure_nginx_manager/raw/refs/heads/master/letsencrypt_regru.sh | sudo bash -s uninstall
```
**💡 Совет:** При обновлении/удалении через curl скрипт автоматически скачивает необходимые файлы с GitHub.
#### 📚 Техническая справка: Синтаксис команд
<details>
<summary>Почему используется <code>| sudo bash -s update</code> вместо <code>bash -c "$(curl ...) update"</code>?</summary>
**Правильный способ (с аргументами):**
```bash
curl -fsSL https://url/script.sh | sudo bash -s update
# ↑
# -s передает аргументы скрипту
```
**Неправильный способ (аргументы игнорируются):**
```bash
sudo bash -c "$(curl -fsSL https://url/script.sh) update"
# ↑
# Это НЕ аргумент для скрипта!
# Это аргумент для bash -c
```
**Объяснение:**
- `bash -c "command"` - выполняет команду как строку, дополнительные аргументы становятся позиционными параметрами для bash, а не для скрипта
- `bash -s arg1 arg2` - читает скрипт из stdin и передает arg1, arg2 как аргументы скрипту ($1, $2)
**Альтернативные способы:**
```bash
# Вариант 1: Через pipe (рекомендуется)
curl -fsSL https://url/script.sh | sudo bash -s update
# Вариант 2: Через временный файл
curl -fsSL https://url/script.sh -o /tmp/install.sh
sudo bash /tmp/install.sh update
rm /tmp/install.sh
# Вариант 3: Через wget
wget -qO- https://url/script.sh | sudo bash -s update
```
</details>
### Расположение файлов
После установки файлы находятся: