Удаление комментария в ini-файле, написанном ant при обновлении ini-файла - PullRequest
1 голос
/ 07 июля 2011

У меня есть файл ant, который обновляет данные в файле ant, так как этот INI-файл обновляется, а вверху он имеет следующий комментарий:

#Thu, 07 Jul 2011 06:54:54 -0500

Мне не нужен этот комментарий, поскольку ядоступ к этому файлу по php с использованием parse_ini.Из-за этого комментария я получаю ошибку

Comments starting with '#' are deprecated in build.ini on line 1

, поэтому есть ли способ, чтобы я не получил комментарий в INI-файле.

Спасибо.

РЕДАКТИРОВАТЬ:

<propertyfile file="build.ini">
  <entry key="build-number" type="int" operation="+" value="1" />
</propertyfile>

при этом номер сборки моего ini-файла обновляется на + 1

1 Ответ

3 голосов
/ 07 июля 2011

Комментарий Мартина указывает на способ удаления комментариев с помощью replaceregexp.(Я собирался показать вам аналогичную идею, но с использованием move, filterchain и striplinecomments. Но replaceregexp более компактен.)

Другое предложение, которое у меня есть, так как вы редактируете INI-файлы, возможно, вам следует использоватьзадача, предназначенная для этого, вместо того, чтобы использовать задачу PropertyFile .В ant-contrib есть IniFile taks, которые могут выполнить эту работу.

Если replaceregexp не работает для вас, потому что в вашем файле есть другие # комментарии, и вы хотите удалить тольков верхней строке, затем попробуйте это:

<target name="test">
  <propertyfile file="test.properties">
    <entry key="key" value="value"/>
  </propertyfile>
  <move file="test.properties" tofile="test.properties.tmp">
    <filterchain>
      <headfilter lines="-1" skip="1"/>
    </filterchain>
  </move>
  <move file="test.properties.tmp" tofile="test.properties"/>
</target>

Вывод:

$ cat test.properties
one=1
# existing comment

$ ant
Buildfile: C:\tmp\ant\build.xml

test:
[propertyfile] Updating property file: C:\tmp\ant\test.properties
     [move] Moving 1 file to C:\tmp\ant
     [move] Moving 1 file to C:\tmp\ant

BUILD SUCCESSFUL

Total time: 0 seconds

$ cat test.properties
one=1
# existing comment

key=value
...