Встроенные команды ТCL


pkg_mkIndex

        Создает индексный файл для автоматической загрузки пакета.

         Синтаксис
        pkg_mkIndex diг pattern?pattern pattern...?

        Описание

        Процедура pkg_mkIndex представляет собой утилиту для работы с Tcl-библиотеками. Она обеспечивает создание индексных файлов, необходимых для автоматической загрузки пакетов, когда в приложении встречается команда package require. Для создания автоматически загружаемых пакетов необходимо выполнить следующие действия:

         1. Создать один или несколько пакетов. Каждый пакет может состоять из одного или больше файлов с Tcl-скриптами или из бинарных файлов. Бинарные файлы должны быть пригодны для их загрузки с помощью команды load с единственным аргументом -именем файла. Например, если в пакет входит файл test.so, он должен загружаться командой load test.so. Каждый файл Tcl-скриптов должен содержать команду package provide с именем пакета и версией. Каждый бинарный файл должен содержать вызов процедуры Tcl_PkgProvide.

         2. Создать индексные файлы с помощью команды pkg_mkIndex. Аргумент dir указывает имя каталога, в котором лежат файлы пакета, а шаблоны pattern, которые могут содержать специальные символы, как в команде glob, указывают на файлы в этом каталоге. Команда pkg_mkIndex создаст в каталоге dir файл pkgIndex.tcl, содержащий информацию обо всех файлах пакета, заданных с помощью аргументов pattern. Для этого загружаются все файлы пакета, и определяется, какие новые пакеты и какие новые процедуры появились (поэтому в каждом файле пакета и должна быть команда package provide или вызов Tcl_PkgProvide).

         3. Установить пакет как подкаталог одного из каталогов, перечисленных в переменной tcl_pkgPath. Если в списке $tcl_pkgPath больше одного каталога, то бинарные файлы с разделяемыми библиотеками обычно устанавливаются в первом каталоге, а библиотеки Tcl-скриптов — во втором. В этих каталогах должны также находиться файлы pkgIndex.tcl. Пока пакеты будут размещаться в подкаталогах каталогов, перечисленных в переменной tcl_pkgPath, этого будет достаточно для их автоматической загрузки при выполнении команды package require.

         Если вы установили пакеты в каких-либо других каталогах, то необходимо, чтобы эти каталоги содержались в переменной auto_path или были бы непосредственными подкаталогами одного из содержащихся там каталогов. Переменная auto_path содержит список каталогов, которые просматриваются как автозагрузчиком, так и загрузчиком пакетов. По умолчанию он включает $tcl_pkgPath. Загрузчик пакетов также просматривает и подкаталоги каталогов, включенных в auto_path. Пользователь может в явном виде включить в приложении необходимые каталоги в auto_path. А можно включить эти каталоги в переменную окружения TCLLIBPATH. Если она существует, то используется для инициализации переменной auto_path при запуске приложения.

         Если перечисленные выше шаги выполнены, то для использования необходимого пакета достаточно выполнить в приложении команду package require.
Hosted by uCoz