On Mon, Jul 23, 2012 at 2:24 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Sebastian Schuberth <sschube...@gmail.com> writes:
>> We have no such assurance. That's why you correctly call it a
>> heuristics after all
> ImageMagick "compare" takes "--version" and says something like
> this to its standard output:
>     $ compare --version
>     Version: ImageMagick 6.6.0-4 2012-05-02 Q16
>     http://www.imagemagick.org
>     Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
> Does Araxis compare take "--version" and behave in a way that is
> cheaply controllable?  If it opens a GUI window and pops up a dialog
> that says "Option not understood", then it is not "controllable",
> but if it quickly dies with "No such option" sent to the standard
> error output, or sending its version string to the standard output,
> then we could use something like:
>         case "$(compare --version 2>/dev/null)" in
>         "Araxis compare version"*)
>                 echo compare ;;
>         *)
>                 echo "$1" ;;
>         esac
> instead, and that would be more robust than the path based
> heuristics.

Araxis compare (the one I have) does not accept --version.

Also, the GraphicsMagick (ImageMagick fork) compare does not have
--version, but it does have "compare version":

$ compare version
GraphicsMagick 1.3.12 2010-03-08 Q8 http://www.GraphicsMagick.org/
Copyright (C) 2002-2010 GraphicsMagick Group.
Additional copyrights and licenses apply to this software.
See http://www.GraphicsMagick.org/www/Copyright.html for details.

If we care to blacklist *Magick compare, then we may be able to call
"compare version" and parse the output looking for "Magic".

I tested ImageMagick compare and it also understands "compare version".

Araxis compare prints nothing when "compare version" is called.
Likely because it thinks it has nothing to do.  It does the same if I
say "compare blahblah", and returns exit status 0.  So its output is

It seems like the best we can do is specifically blacklist the *Magick
"compare" commands so that they do not show up as false positives.
And the only way to identify them is to parse their output, since all
commands return status 0 for "compare version".

Another possibility is to parse the output of "compare" (no args) and
grep for "merge".  The name "Araxis Merge" is never actually printed,
but the help text for "-merge" does appear.... yep.. it's a heuristic.

Sebastian, are you testing on Windows?  The araxis "compare" I used is
OS X.  Does "compare version" open a GUI window for you?  For me it
does not.
What about "compare -h", or just "compare" ?
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to