This commit is contained in:
Andrei Astafev 2020-04-13 10:54:15 +03:00
parent 5facc2edd6
commit e1873d9579

View File

@ -112,10 +112,78 @@ qDebug() << paths.systemConstDataDirectory().path();
| Журналы работы | userLogDirectory() | /home/user/.local/share/project/log
|===
==== Общая проверка
Для определения типа текущего окружения используется полный путь
к исполняемому файлу, если он находится в каталоге `bin`, то выполняются
проверки работы в одной из возможных вариантов иерархий, иначе
делается заключение о том, что файлы всех типов находятся в одном
каталоге с исполняемым.
проверки работы в одной из возможных вариантов иерархий,
иначе делается заключение о том, что файлы всех типов находятся
в одном каталоге с исполняемым и дальнейшие проверки не выполняются.
==== Проверка на работу в иерархии `/opt`
Если полный путь к исполняемому файлу начинается c `/opt` и
содержит в себе название текущего проекта, например
`/opt/org/project/bin/application`, то выполняется проверка
на наличие сопутствующих системных каталогов. Если они присутствуют,
то принимается решение, что окружение в иерархии `/opt` сформировано правильно,
иначе делается заключение о том, что файлы всех типов находятся
в одном каталоге с исполняемым и дальнейшие проверки не выполняются.
Пример правильной структуры каталогов для данной иерархии приведён в таблице.
[cols="3,3m,5m",options="header",]
|===
| Назначение каталога | Метод | Значение
| Исполняемый файл | executableFilePath() | /opt/org/project/bin/application
| Файлы настройки | systemConfigDirectory() | /opt/org/project/etc
| Неизменяемые файлы | systemConstDataDirectory() | /opt/org/project/files/data
| Изменяемые файлы | systemVarDataDirectory() | /opt/org/project/files/lib
| Журналы работы | systemLogDirectory() | /opt/org/project/files/log
|===
==== Проверка на работу в иерархии `/usr/local`
Если полный путь к исполняемому файлу начинается c `/usr/local`,
например `/usr/local/bin/application`, то выполняется проверка
на наличие сопутствующих системных каталогов. Если они присутствуют,
то принимается решение, что окружение в иерархии `/usr/local` сформировано правильно,
иначе делается заключение о том, что файлы всех типов находятся
в одном каталоге с исполняемым и дальнейшие проверки не выполняются.
Пример правильной структуры каталогов для данной иерархии приведён в таблице.
[cols="3,3m,5m",options="header",]
|===
| Назначение каталога | Метод | Значение
| Исполняемый файл | executableFilePath() | /usr/local/bin/application
| Файлы настройки | systemConfigDirectory() | /usr/local/etc/project
| Неизменяемые файлы | systemConstDataDirectory() | /usr/local/share/project
| Изменяемые файлы | systemVarDataDirectory() | /var/lib/project
| Журналы работы | systemLogDirectory() | /var/log/project
|===
==== Проверка на работу в иерархии `/usr`
Если полный путь к исполняемому файлу начинается c `/usr`,
например `/usr/bin/application`, то выполняется проверка
на наличие сопутствующих системных каталогов. Если они присутствуют,
то принимается решение, что окружение в иерархии `/usr` сформировано правильно,
иначе делается заключение о том, что файлы всех типов находятся
в одном каталоге с исполняемым и дальнейшие проверки не выполняются.
Пример правильной структуры каталогов для данной иерархии приведён в таблице.
[cols="3,3m,5m",options="header",]
|===
| Назначение каталога | Метод | Значение
| Исполняемый файл | executableFilePath() | /usr/bin/application
| Файлы настройки | systemConfigDirectory() | /etc/project
| Неизменяемые файлы | systemConstDataDirectory() | /usr/share/project
| Изменяемые файлы | systemVarDataDirectory() | /var/lib/project
| Журналы работы | systemLogDirectory() | /var/log/project
|===