You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Douglas Kramer <Do...@Sun.COM> on 2005/01/27 02:45:43 UTC

Ant: get today's date and replace old date

PROBLEM 1:

I want to set the date in the version.properties file of my project.
In the past I've used this Unix command to get today's date:

   DATE=`date '+%d %b %Y'`       // 26 Jan 2005

That is, how can I set the date and assign it to a variable in Ant?


PROBLEM 2:

Then I want to replace the date in the file below.
It looks like the Replace task won't work because it cannot do a wildcard
search.  This is what I've been using:

   sed "s/build...*)/build date: $DATE)/" < $VERSION_PROPERTIES > $VERSION_PROPERTIES_NEW


----------------------- version.properties ---------------------------
#
# @(#)version.properties
#
mifdoclet.version=1.5 beta 1 and 1.4 beta 1 (build date: 26 Jan 2005)
----------------------------------------------------------------------

I suppose I could separate out the date and make it a separate property,
and then use the PropertyFile task to update it.

-Doug

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: Ant: get today's date and replace old date

Posted by Douglas Kramer <Do...@Sun.COM>.
Douglas Kramer wrote:
> PROBLEM 1:
> 
> I want to set the date in the version.properties file of my project.
> In the past I've used this Unix command to get today's date:
> 
>   DATE=`date '+%d %b %Y'`       // 26 Jan 2005
> 
> That is, how can I set the date and assign it to a variable in Ant?

Okay, I found <tstamp> so that solves that problem.

> PROBLEM 2:
> 
> Then I want to replace the date in the file below.
> It looks like the Replace task won't work because it cannot do a wildcard
> search.  This is what I've been using:
> 
>   sed "s/build...*)/build date: $DATE)/" < $VERSION_PROPERTIES > 
> $VERSION_PROPERTIES_NEW

I wrote this exec task, and it runs without an error message, but
outputs the wrong string altogether:

   <exec dir="${makedir}"
         executable="sed"
         input="version.properties"
         output="version.properties.new"
      <arg line="4,4 s/build...*)/build date: ${DATE})/" />
   </exec>

The output file contains an "Unrecognized command" error message:

% more version.properties.new
Unrecognized command: 4,4

Why does consider "4,4" to be a command?
If I delete "4,4", then it considers the sed command to be garbled:

% more version.properties.new
sed: command garbled: s/build...*)/build


BTW, the sed command does this:
  from line 4 to 4, search for "build...*)" and replace with "build date: $DATE)" -->

-Doug

> 
> ----------------------- version.properties ---------------------------
> #
> # @(#)version.properties
> #
> mifdoclet.version=1.5 beta 1 and 1.4 beta 1 (build date: 26 Jan 2005)
> ----------------------------------------------------------------------
> 
> I suppose I could separate out the date and make it a separate property,
> and then use the PropertyFile task to update it.
> 
> -Doug
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org