Улучшено обновление приложения: добавлена проверка на наличие локального файла letsencrypt_regru_api.py и улучшено логирование процесса скачивания с GitHub.
This commit is contained in:
65
README.md
65
README.md
@@ -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>
|
||||
|
||||
### Расположение файлов
|
||||
|
||||
После установки файлы находятся:
|
||||
|
||||
@@ -532,7 +532,7 @@ display_summary() {
|
||||
update_application() {
|
||||
header "Обновление приложения"
|
||||
|
||||
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
local github_raw_url="https://raw.githubusercontent.com/DFofanov/configure_nginx_manager/refs/heads/master"
|
||||
|
||||
msg_info "Остановка сервиса..."
|
||||
@@ -541,13 +541,13 @@ update_application() {
|
||||
msg_info "Обновление файлов..."
|
||||
|
||||
# Попытка скопировать локально или скачать с GitHub
|
||||
if [ -f "${script_dir}/letsencrypt_regru_api.py" ]; then
|
||||
if [ -n "${script_dir}" ] && [ -f "${script_dir}/letsencrypt_regru_api.py" ]; then
|
||||
msg_info "Копирование из локальной директории..."
|
||||
cp "${script_dir}/letsencrypt_regru_api.py" "${APP_DIR}/"
|
||||
chmod 755 "${APP_DIR}/letsencrypt_regru_api.py"
|
||||
msg_ok "Файл скопирован локально"
|
||||
else
|
||||
msg_info "Локальный файл не найден, скачивание с GitHub..."
|
||||
msg_info "Скачивание обновления с GitHub..."
|
||||
if command -v curl &> /dev/null; then
|
||||
if curl -fsSL "${github_raw_url}/letsencrypt_regru_api.py" -o "${APP_DIR}/letsencrypt_regru_api.py"; then
|
||||
chmod 755 "${APP_DIR}/letsencrypt_regru_api.py"
|
||||
|
||||
Reference in New Issue
Block a user