Улучшено обновление приложения: добавлена проверка на наличие локального файла letsencrypt_regru_api.py и улучшено логирование процесса скачивания с GitHub.
This commit is contained in:
65
README.md
65
README.md
@@ -69,7 +69,10 @@ Python скрипт теперь автоматически загружает
|
|||||||
**Вариант 1: Автоматическая установка одной командой**
|
**Вариант 1: Автоматическая установка одной командой**
|
||||||
|
|
||||||
```bash
|
```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)"
|
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
|
```bash
|
||||||
# Обновить приложение до последней версии (из локального репозитория)
|
# Способ 1: Из локального репозитория (если клонировали)
|
||||||
cd configure_nginx_manager
|
cd configure_nginx_manager
|
||||||
|
git pull # Получить последние изменения
|
||||||
sudo bash letsencrypt_regru.sh update
|
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
|
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
|
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 -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() {
|
update_application() {
|
||||||
header "Обновление приложения"
|
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"
|
local github_raw_url="https://raw.githubusercontent.com/DFofanov/configure_nginx_manager/refs/heads/master"
|
||||||
|
|
||||||
msg_info "Остановка сервиса..."
|
msg_info "Остановка сервиса..."
|
||||||
@@ -541,13 +541,13 @@ update_application() {
|
|||||||
msg_info "Обновление файлов..."
|
msg_info "Обновление файлов..."
|
||||||
|
|
||||||
# Попытка скопировать локально или скачать с GitHub
|
# Попытка скопировать локально или скачать с GitHub
|
||||||
if [ -f "${script_dir}/letsencrypt_regru_api.py" ]; then
|
if [ -n "${script_dir}" ] && [ -f "${script_dir}/letsencrypt_regru_api.py" ]; then
|
||||||
msg_info "Копирование из локальной директории..."
|
msg_info "Копирование из локальной директории..."
|
||||||
cp "${script_dir}/letsencrypt_regru_api.py" "${APP_DIR}/"
|
cp "${script_dir}/letsencrypt_regru_api.py" "${APP_DIR}/"
|
||||||
chmod 755 "${APP_DIR}/letsencrypt_regru_api.py"
|
chmod 755 "${APP_DIR}/letsencrypt_regru_api.py"
|
||||||
msg_ok "Файл скопирован локально"
|
msg_ok "Файл скопирован локально"
|
||||||
else
|
else
|
||||||
msg_info "Локальный файл не найден, скачивание с GitHub..."
|
msg_info "Скачивание обновления с GitHub..."
|
||||||
if command -v curl &> /dev/null; then
|
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
|
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"
|
chmod 755 "${APP_DIR}/letsencrypt_regru_api.py"
|
||||||
|
|||||||
Reference in New Issue
Block a user