Is there a way to detect if an ant retrieve call fails due to a login issue?


I've got a pretty basic bash script that uses ant to retrieve the latest changes from our production instance and commit them to a git repo. In order to get track deletions I have to first clear out the src folder since retrieve leaves deleted components behind. Problem is if their is any failure with the retrieve call it commits with an empty folder. How can I get my script to exit if the retrieve call fails?

  • Can you post a fragement of your Ant script. I've just tried a sf:retrieve ant call and it does stop the Ant build script when a login error occurs. Have you got some try/catch logic someplace in your script perhaps? – Andrew Fawcett Nov 9 '13 at 10:14
  • Ant's -verbose (and -debug and -diagnostics) command-line options are worth trying when an Ant task is not doing what you expect so that you can see detail of the internal steps. – Keith C Nov 10 '13 at 10:11
  • The ant task was working as expected. Just needed the downstream part of a bash script to be able to act conditionally based on whether the ant build failed or not. – Ralph Callaway Nov 10 '13 at 21:13

There are two ways you can control this:

1) You can check the error code from the ant run. If the error code is not 0, there was an error. For example, something like this should work (*nix):

ant retrieve
if [ "$?" = "0" ]; then
    # commit;
    echo "Failed to retrieve, skipping commit.";

2) You can commit in the ant target directly using the ant exec command; if the retrieve fails, the commit will never occur.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.