Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Есть приложение, оно периодически обновляется, новая версия выкладывается Интернет.

Важно, приложение работает без участия пользователя и пользователь не должен принимать участие в его работе и, соответственно, работе обновления.

Обновления могут включать в себя несколько файлов и в разных папках, относительно папки приложения.

Требуется написать библиотеку, которая будет подключена в основное приложение. Библиотека должна выполнять следующие функции:

1. Проверять и загружать новую версию по HTTP(S), если она есть.

2. Считать CRC и сравнивать с исходным

3. Распаковывать в отдельную временную папку

4. Делать резервную копию обновляемых файлов вместе с подпапками

5. Обновлять файлы

6. Восстанавливать резервную копию файлов и удалять новые файлы

7. Вести лог файл за каждый день, включая его сворачивание за последние 30 дней

8. Отправлять на сервер http(s) get данные некоторых уровней логов

9. Контроль ошибок выполнения на всех участках, обслуживание исключительных ситуаций. Автоматический откат при их возникновении, например, ошибка при копировании файлов в середине обновления – надо произвести откат на исходную позицию.

10. Никакого GUI не нужно, только функции класса.

11. Проект будет выложен после его приемки на github.com по LGNU-лицензии. По сути мы финансируем open source библиотеку.

Всё должно быть реализовано только на чистом С/++ с компиляцией gcc под linux с использованием open source библиотек, например, libcurl и т.п. кроме TCL, qt, boost и других крупных, т.к. приложение будет функционировать на слабом железе. Эти условия без вариантов.

Аккуратность оформления кода, управление памятью и другие очевидные правила должны быть реализованы.

В результате должна получиться библиотека и тестовое приложение библиотеки на несколько кейсов.

12 лет назад
plr
47 летРоссия
19 лет в сервисе
Был
2 года назад