Сохранение значения в свойстве с помощью Ant или Phing

С помощью 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, чтобы создать свою собственную. Работал отлично!


person JeffreyWay    schedule 11.08.2011    source источник


Ответы (2)


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

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

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

person m2o    schedule 11.08.2011

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

person poisson    schedule 11.08.2011