SWUC (Software Updates Checker) — это инструмент командной строки, предназначенный для проверки обновлений программного обеспечения. Он обменивается данными с удаленным сервером с использованием зашифрованных коммуникаций для обеспечения конфиденциальности и безопасности при проверке обновлений программных пакетов.
cargo install swucИли сборка из исходного кода:
git clone https://github.com/NotBalds/swuc-client.git
cd swuc-client
cargo build --releaseСкомпилированный бинарный файл будет доступен по пути target/release/swuc.
Перед использованием SWUC необходимо настроить файл конфигурации по следующему пути:
- Linux:
~/.config/swuc/user_config.json - macOS:
~/Library/Application Support/swuc/user_config.json - Windows:
C:\Users\<имя_пользователя>\AppData\Roaming\swuc\SWUC\config\user_config.json
Пример конфигурации:
{
"url": "wss://updates.example.com/api/check",
"uuid": "ваш-уникальный-идентификатор",
"secret": "ваш-секретный-ключ",
"public": "серверный-публичный-ключ"
}Файл конфигурации пользователя генерируется на сервере и каким либо образом передается пользователю
SWUC требует как минимум одну подкоманду для работы. В настоящее время поддерживается подкоманда run для запуска проверки обновлений.
swuc [ПОДКОМАНДА] [ОПЦИИ]
В настоящее время SWUC поддерживает следующую подкоманду:
Инициирует процесс проверки обновлений. Читает список пакетов из указанного входного файла, отправляет зашифрованные запросы на сервер обновлений и генерирует отчеты.
swuc run -i <ВХОДНОЙ_ФАЙЛ> [-o <ВЫХОДНОЙ_ФАЙЛ>] [-t <ИНТЕРВАЛ>]
-
-i, --input <ФАЙЛ>(обязательно): Путь к файлу со списком пакетов. Этот файл должен содержать одно имя пакета на строку. -
-o, --output <ФАЙЛ>(опционально): Путь, по которому будет сохранен отчет в читаемом виде. Если не указан, отчет будет сохранен только в местах по умолчанию (директория desktop/swuc-reports). -
-t, --interval <ЧАСЫ>(опционально): Интервал в часах между проверками обновлений. Если указан, SWUC будет работать непрерывно, проверяя обновления через указанный интервал. Если не указан, SWUC выполнит проверку один раз и завершит работу.
swuc run -i ~/packages.txt -o ~/update_report.txtswuc run -i ~/packages.txt -o ~/update_report.txt -t 24Файл со списком пакетов должен содержать одно имя пакета на строку:
package1
package2
package3
SWUC создает два типа отчетов:
- Краткий отчет: Сжатая версия, показывающая только пакеты с обновлениями.
- Полный отчет: Подробная версия, включающая источники обновлений и дополнительную информацию.
Отчеты сохраняются в:
- Указанный выходной файл (если предоставлен через опцию
-o) - Директорию рабочего стола (
~/Desktop/swuc-reports/latest.txt) - Директорию с отчетами с отметкой времени (
~/Desktop/swuc-reports/report_ЧЧ-ММ_ДД-ММ-ГГГГ.txt)
Кроме того, SWUC поддерживает файл, отслеживающий текущие версии пакетов, по пути ~/Desktop/swuc_current.txt.
SWUC использует ECIES (Elliptic Curve Integrated Encryption Scheme) для защиты коммуникаций с сервером обновлений. Клиент и сервер обмениваются публичными ключами, обеспечивая шифрование информации о пакетах при передаче.
SWUC предоставляет подробные сообщения об ошибках, когда возникают проблемы, включая:
- Ошибки конфигурации
- Проблемы доступа к файлам
- Проблемы сетевого подключения
- Сбои шифрования/дешифрования
- Проблемы анализа ответа сервера
SWUC кэширует ответы сервера в следующих местах:
- Linux:
~/.cache/swuc/ - macOS:
~/Library/Caches/swuc/ - Windows:
C:\Users\<имя_пользователя>\AppData\Local\swuc\SWUC\cache\
Это позволяет проводить аудит и устранение неполадок при необходимости.
Текущая версия: 0.2.0