Skip to content
Alexey Shumkin edited this page Jun 21, 2019 · 1 revision

Table of Contents

Основные теги

Nota bene: все теги имеют атрибуты:

  • description - описание. Используется при логгировании, отладке.
  • if - значение вычисляется (задача выполняется), если определено свойство, заданное этим атрибутом
  • unless - то же, что и not if, т. е. "если не"
  • ifdef - то же, что if
  • ifndef - то же, что unless

project

Основной тег. Содержит все другие теги. Имеет атрибуты:

  • basedir — корневая папка проекта. Доступно в свойствах
  • name — имя проекта. Доступно в свойствах (c v0.11.29)
  • default — задача, выполняемая по умолчанию, если при запуске Want не указано ни одной задачи
  • require — требуемая версия WANT (не ниже)
Прим. только в версии ОТР, начиная с v0.11.29
Прим. с версии v0.11.29 доступно свойство rootpath — папка со скриптом (не basedir!)

property

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

Атрибуты

  • name - имя, по которому потом идёт к нему обращение. Если при присвоении имя начинается с # (рёшетка), устанавливается свойство проекта
  • value - устанавливаемое значение.
  • path - неизвестно как используется
  • section - секция файла в ini-формате, из которой читаются свойства и их значения
  • file - задаёт файл, из которого читаются свойства и их значения (name=value). Если задан атрибут section файл считается в формате ini
  • overwrite - признак переопределения значения свойства.
Nota bene: если свойство с именем name уже было установлено выше, а атрибут overwrite не установлен, то значение свойства не изменится.

regexp

Свойство, работающее с PERL-совместимыми регулярными выражениями (regular expression = regexp).

Атрибуты

  • property - имя свойства
  • text - исходное значение
  • pattern - шаблон regexp
  • subst - шаблон замены.
  • trim - неизвестно где используется
  • overwrite - то же, что и property.overwrite
  • toupper - приведение результата к верхнему регистру
  • tolower - приведение результата к нижнему регистру (только если не задан toupper)
Nota bene: Обработка регулярных выражений в версии ОТР был заменёна на библиотеку RegExpr, но для обратной совместимости используется уже устаревший синтаксис обратных ссылок: \N, где N = 1..9, а не $N, как рекомендуется современными версиями PERL.

patternset

Представляет набор/список файлов.

Атрибуты

  • id — идентификатор данного набора/списка
  • refid — идентификатор другого набора/списка, который включается в этот
Может включать теги
  • include,
  • exclude — включение/исключение файлов по маске
которые имеют тег
  • name — путь/маска
если маска = '**', то включать все файлы с подкаталогами

Пример

 <patternset id="sources" >
     <include name="${lib}/" />
     <include name="${lib}/jcl/source" />     
     <include name="${src}/" />
     <include name="${src}/**" />
 </patternset>
 <patternset id="resources">
     <patternset refid="sources"/>
     <include name="${bin}" />
 </patternset>

tstamp

Задаёт "стандартные" свойства по формату (см. функцию Delphi FormatDateTime):

  • dstamp - 'yyyymmdd'
  • tstamp - hhnn
  • today - mmm ddd d yyyy
  • year - yyyy
  • month - mm
  • day - dd
  • hour - hh
  • minute - nn
  • second - ss
  • ticks - количество миллисекунд

Теги

  • format - форматирует время по пользовательскому формату. Имеет атрибуты:
    • property - имя свойства
    • pattern - шаблон форматирования

Обращение к свойствам происходит в следующем виде: префикс{имя_свойства}, где префикс:
  • % - получает значение переменной окружения
  • $ - получает значение свойства
  • = - вычисляет выражение
  • ? - получает значение из ini-файла. При этом ?{имя_ini_файла:секция:ключ}
  • @ - вычисляет значение пути, относительно корневого пути
К примеру:
%{COMSPEC}
${project.name}
={1+1}
?{${project.dof}:Version Info Keys:FileVersion}
@{/../resources}

Nota bene: Значения свойств вычисляются до выполнения задач, даже если они заданы в задачах.

target

Выполняемая задача.

Атрибуты

  • name — имя
  • depends — список задач, перечисленных через запятую, от которых зависит данная задача (т. е. те, которые выполняются перед данной задачей)
  • foreach — список значений или список файлов, перечисленных через запятую, для каждого из которых требуется выполнить данную задачу; при указании имен файлов можно использовать стандартные групповые символы (* или ?) для создания масок
  • foreachlist — признак того, что foreach является списком значений (а не списком файлов), перечисленных через запятую или точку с запятой.
Cуществует только в версии > 0.11.25
  • property - используется при выполнении задачи в цикле foreach; задает название свойства, содержащего имя файла из списка foreach, для которого выполняется текущая итерация задачи; если атрибут property не задан, используется свойство ${each}
  • if (см. if свойств проекта)

Может содержать подзадачи (указаны изменения в доработанной версии):
  • brcc
  • cvs
  • cvstagdiff
  • cvspass
  • cvschangelog
  • echo
  • edit — изменена. Изменена обработка атрибута text
  • encode — задача добавлена
  • exec — изменена. Добавлен атрибут ansi.
  • copy
  • dcc — изменена. Добавлена обработка user overrided environment variables при uselibrarypath
  • decode — задача добавлена
  • delete
  • dunit
  • gorc — задача добавлена
  • gunzip
  • gzip
  • hash — задача добавлена
  • ini
  • innosetupcompile
  • input — изменена. Учитывается кириллица в message (конвертируется, если указан ключ -ansi при запуске Want). Добавлен тег numbered.
  • loadfile
  • log
  • mkdir
  • move
  • rc — задача добавлена
  • shell
  • style — исправлены ошибки при работе с путями
  • svn — задача добавлена
  • svnauth — задача добавлена
  • svncommit — задача добавлена
  • svndiff — задача добавлена
  • svnlastrevision — задача добавлена
  • tempfile — исправлены ошибки при работе с путями
  • touch
  • unzip
  • want — изменена. Добавлена передача и получение переменных
  • xmlproperty
  • zip
Категория:Want