Изучив структуры папок и конфигурационных файлов скрипта
Update Pack, давайте посмотрим как он работает с аддонами.
После выполнения собственных действий скрипт приступает к обработке аддонов.
Аддоны находящиеся в папке скрипта [
Addons] обрабатываются в алфавитном порядке.
Скрипт проверяет условия заданные в конфигурационных файлах
Required, Conflict и если все нормально продолжает работу, в противном случае выдается ошибка. Затем скрипт выполняет конфигурационный файл
Start до начала других действий, далее основные операции с аддонами и последним выполняется конфигурационный файл
Finish (при условии конечно, что эти конфигурационные файлы присутствуют в папке аддона).
Обработка файлов в папках аддона.
Структура папок
Код:
![Выделить весь код](images/misc/selectcode.png)
Addon Folder
+Files
-+Compressed
-+ForceCopy
--+SVCPACK
В корневой папке размещаются
конфигурационные файлы аддона для скрипта. Эти файлы никуда не копируются.
В папке
Files размещаются собственно файлы аддона. Размещенные в корне этой папки файлы, скрипт копирует в дистрибутивную папку
I386 без учета вложенных папок, с заменой файлов в случае совпадения, предварительно сжимая их в CAB-архив и приводя к виду
file.ex_ , либо без дополнительной обработки если файл дистрибутива не сжат (пример:
Telnet.exe). Все файлы из этой папки должны быть прописаны в конфигурационных файлах
txtsetup и dosnet (иначе мастер установки не скопирует их из дитрибутива).
Подпапка
Compressed служит для временного хранения ранее сжатых файлов из папки
Files. Эти файлы могут использоваться скриптом в дальнейшем для экономии времени на упаковку.
Подпапка
ForceCopy служит для прямого копирования размещенных в ней файлов
с учетом вложенных папок в
I386 без дополнительной обработки.
Пример: файлы из вложенной папки SVCPACK копируются в [..I386\SVCPACK]
Все записи в чистом виде из конфигурационных файлов
Dosnet, Txtsetup добавляются в
Dosnet.inf, Txtsetup.sif, а записи из
Sysoc добавляются в секцию
[Components] файла
sysoc.inf . Записи из конфигурационного файла
Run добавляется в секцию
[SetupHotfixesToRun] файла
svcpack.inf.
Далее скрипт модифицирует
svcpack.inf согласно имен
*.cat - файлов размещенных в каталоге SVCPACK аддона (если такие файлы требуются). В секцию
[ProductCatalogsToInstall] файла svcpack.inf добавляются имена всех
*.cat файлов.
Обрабатывается список файлов, для которых нужно отключить WFP, посредством
KillWFP.lst, удалются из дистрибутива и выводятся из под защиты файлы посредством
DelDrv.lst, DelOC.lst (патч Sfcfiles.dll);
Также обрабатывается
Addon.nfo при сборке все эти файлы сливаются в один
ADDONS.TXT, который пишется в корень папки с собираемым дистрибутивом;