ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brian Stephenson" <bstephen...@thortech-solutions.com>
Subject Re: Do something if <get ... usetimestamp="true"/> downloads file
Date Sat, 10 Jan 2009 15:50:51 GMT
Let me talk from a conceptual point of view. In case number 2, big question
is if you need to save the existing older local file if there is a newer
source file, before trying to get the newer one, in case you want to use the
old one if the download fails. If you put a "DELETE ${destination.file}"
action in your target prior to the get, then if the download fails, the
local dest file will not exist, and will not pass the Available task. But
now you have no local copy and need to re-run the ANT project to try to
re-download (but I suspect your process will have to do that anyway in case
of download failure, but not sure of your specific situation there).

You can also use the RENAME task on the existing local file
("${destination.file}.SAV") before the GET (us the UpToDate task to tell you
if you are going to run the Get, and need to rename the original dest file),
and DELETE the renamed original file if the download is succesful (if the
Available task sets the property because the dowloaded file exists), or
RENAME it back to the original name if the download fails (if the Available
task fails to set the property because the dowloaded file does not exist).

Let me know if you need some specific ANT code example of what I am talking
about, or if I am making no sense whatsoever, which is always
possible....Good Luck.

Brian

On Fri, Jan 9, 2009 at 2:44 PM, Kent Larsson <kent.larsson@gmail.com> wrote:

> Hi Brian,
>
> Thanks for trying to help, but the key to my problem is that I use
> usetimestamp="true" in my get task. It means that the file will be
> downloaded for two cases: 1) The file isn't there to begin with and 2)
> The file is there but has a time stamp going back further in time than
> the remote file. Your example handle [1] but not [2], and I really
> need to handle them both.
>
> More ideas? :-)
>
>
> On Fri, Jan 9, 2009 at 7:00 PM, Brian Stephenson
> <bstephenson@thortech-solutions.com> wrote:
> > Kent,
> >   There may be a more direct way to do this, but I accomplish a similar
> > thing this way (I munged my code to match yours):
> >
> > <available file="${destination.file}" type="file"
> > property="dest.file.present"/>
> >
> > Then the targets following can have the "if" attribute in the target:
> >
> > <target name="Do_When_File_Is_There" depends="download-ivy"
> > if="dest.file.present">
> > ...
> > </target>
> >
> > With "available", the designated property is not set if the file does not
> > exist.  With the "if", the target is only executed if the property is
> > actually set, which it won't be if the destination file does not exist
> after
> > attempted download.
> >
> > Brian
> >
> >
> > On Jan 9, 2009, at 11:58 AM, Kent Larsson wrote:
> >
> >> In a target I download a remote file if it's newer than the current
> >> local one or if no local copy exists. I do it using the following code
> >> and it works as it's supposed to:
> >>
> >> <target name="download-ivy" unless="skip.download">
> >>  <mkdir dir="${destination.dir}"/>
> >>  <get src="http://a.com/b.jar" dest="${destination.file}"
> >> usetimestamp="true"/>
> >> </target>
> >>
> >> Now to my problem:
> >>
> >> I would like to do something if the remote file is actually
> >> downloaded. If the remote file is not downloaded I don't want to do
> >> these tasks.
> >>
> >> I've looked through the manual and done some Googling without finding
> >> my answer. I'm quite new to Ant so this may still be an easy problem
> >> for someone more experienced.
> >>
> >> Any and all help highly appreciated!
> >>
> >> Regards, Kent
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> >> For additional commands, e-mail: user-help@ant.apache.org
> >>
> >
> > Brian Stephenson
> > ThorTech Solutions
> > www.thortech-solutions.com
> > (914) 302-7638  [work]
> > (914) 302-7641  [fax]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message