Сохраните значение в свойстве с помощью Ant или Phing - PullRequest
2 голосов
/ 11 августа 2011

В Ant или Phing мне нужно загрузить содержимое файла в свойство, запустить регулярное выражение для значения этого свойства, а затем сохранить результат этого регулярного выражения в другом свойстве.Какой лучший способ сделать это?

Я могу легко загрузить файл в свойство (с помощью Phing), например:

<loadfile file="myfile.txt" property="my.file" />

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

Любая помощь будет принята с благодарностью!

Обновление

Я возился с этим, и это будет работать.Дайте мне знать, если есть обтекаемый путь, хотя!Приведенный ниже код загружает файл в свойство, а затем уменьшает его до строки, содержащей тег title.Затем он запускает регулярное выражение в этой строке и сохраняет содержимое этого тега в my.prop.

<loadfile file="../index.html" property="my.prop">
  <filterchain>
     <linecontainsregexp>
        <regexp pattern="&lt;title>" />
    </linecontainsregexp>

    <replaceregexp>
        <regexp pattern="[\s\S]+<title>(.+?)</title>" replace="$1" />
    </replaceregexp>
  </filterchain>
</loadfile>

Обновление 2

На самом деле я создал задачу adhoc для создания своей собственной.Работал отлично!

Ответы [ 2 ]

0 голосов
/ 12 августа 2011

В Phing вы можете обработать содержимое свойства, куда вы загрузили файл, с помощью задачи "php".Смотри: http://www.phing.info/docs/guide/stable/chapters/appendixes/AppendixB-CoreTasks.html#PhpEvalTask

0 голосов
/ 11 августа 2011

Вы можете запустить произвольную команду из цели ant следующим образом:

<exec executable="bash">
   <arg line="script.sh"/>
</exec>

Например, вы можете сохранить результат регулярного выражения в файле tmp, а затем загрузить его в другое свойство так же, как и исходное.

...