/
nkolentcev
/
devscripts
Обзор
Документация
Войти
/
nkolentcev
/
devscripts
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
onec/onec-dev.prt
64 строки
5 KB
Nikolay Kolentcev
prepare-1c-repo: номера релизов в константах VER_*
01 май 2026, 15:47
01 май 2026, 15:47
07ecfbb
Код
Авторство
О чём код?
# Промпт: bash-скрипт prepare-1c-repo.sh (локальный repo дистрибутивов 1С / Proxmox) Роль: опытный Linux/DevOps-инженер, знаком с 1С:Предприятие, EDT, PostgreSQL под Ubuntu. ## Цель Сгенерировать или доработать **единый** bash-скрипт `prepare-1c-repo.sh`, который готовит каталог **`BASE_DIR`** (по умолчанию `/srv/lab/1c/repo`) как **неизменяемый архив** дистрибутивов для **read-only** монтирования в LXC Proxmox. ## Входные данные - Архивы лежат в **`SRC_DIR`** (по умолчанию `~/Downloads`). - Номера релизов — константы **`VER_PLATFORM`**, **`VER_CONFIG_ENT`**, **`VER_CONFIG_TRADE`**, **`VER_PG_DIR`**, **`VER_PG_FILE`**, **`VER_EDT_PATH`**, при необходимости **`VER_EDT_FILE_MID`** (имя `.tar.gz` EDT от поставщика). Из них собираются пути каталогов и имена **`F_*`**. - Ниже — эталонный список имён файлов для одной лаборатории; при смене версий достаточно обновить **`VER_*`** (если шаблон имён у поставщика не изменился). Эталонные имена: 1. `1c_edt_distr_offline_2025.2.5_2_linux_x86_64.tar.gz` 2. `Enterprise20_2_5_22_178_setup1c.zip` 3. `Trade_11_5_22_178_setup1c.zip` 4. `postgresql_18.1_2_sources.tar.bz2` 5. `postgresql_18.1_2_ubuntu_24.04_x86_64_package.tar.bz2` 6. `postgresql_18.1_2_ubuntu_24.04_x86_64_package_addon.tar.bz2` 7. `server64_8_3_27_2130.zip` ## Целевая структура ``` ${BASE_DIR}/ ├── 1c-platform/8.3.27.2130/{original,linux-deb,README.md} ├── configs-demo/enterprise/2.5.22.178/{original,extracted,cf,dt,cfe,epf,erf,cfu,README.md} ├── configs-demo/trade/11.5.22.178/{original,extracted,cf,dt,cfe,epf,erf,cfu,README.md} ├── postgres/18.1-2-ubuntu-24.04-x86_64/{original,deb,addon,sources,README.md} ├── tools/1c-edt/2025.2.5-2-linux-x86_64/{original,extracted,README.md} └── SHA256SUMS.txt ``` ## Поведение 1. `set -euo pipefail`. 2. **Идемпотентность:** не падать, если каталоги уже есть; не перезаписывать уже перенесённые файлы в `original/`; если файла нет в `Downloads`, но он уже в `original/` — ок; если нет нигде — **предупреждение** и пропуск этапа. 3. **`safe_move`:** не делать слепый `mv`; если цель существует — пропуск; иначе перенос с **`sudo mv`** в `/srv`. 4. Распаковка **только если** целевой каталог **пуст** (`extracted/`, `linux-deb/`, `deb/`, `addon/`). 5. PostgreSQL **sources**: только положить архив в `sources/`, распаковка опциональна; в README указать, что для обычной установки не нужно. 6. После распаковки: под `extracted/` искать и копировать по расширению в `cf/`, `dt/`, `cfe/`, `epf/` (внешние обработки), `erf/` (внешние отчёты), `cfu/` (обновления расширений / .cfu). Владелец root — **sudo find**. 7. **`SHA256SUMS.txt`** в корне `BASE_DIR` по всем `*.zip`, `*.tar.gz`, `*.tar.bz2` (кроме самого файла сумм). 8. Краткие **README.md** по каждому крупному компоненту (платформа, postgres, enterprise, trade, EDT). 9. В конце: **`chown -R root:root`**, каталоги **755**, файлы **644** (через sudo). 10. Вывод итогового дерева (`tree` или `find`) и подсказка монтирования: `pct set ${PVE_CT_ID} -mp0 ${BASE_DIR},mp=/mnt/repo,ro=1` ## CLI - Переменные в начале: `SRC_DIR`, `BASE_DIR`, `PVE_CT_ID` (с дефолтами, `PVE_CT_ID` можно переопределить из окружения). - **`--dry-run`**: только лог действий, без изменений ФС. - **`--help`**: краткая справка. ## Качество кода Понятные имена, функции `log` / `warn` / `die`, комментарии к неочевидным местам; скрипт пригоден для хранения в публичном git **без секретов** (только пути и версии). ## Документация рядом в репозитории Краткая инструкция пользователя — в `prepare-1c-repo.md`; этот файл — только промпт для ИИ/разработчика.