gosgood@bertha ~ $ gmic help check
check (+):
condition
Evaluate specified condition and display an error message if evaluated to false.
If 'expression' is not a math expression, it is regarded as a filename and checked if it exists.
That last statement seems suspect to me. (“If ‘expression’ is not a math expression…”). I don’t think that has been true since 2.6 ( What’s new in 2.6? ) when if, elif, for, while, ceased accepting direct references to file system objects. Seems check should have been included in that change log as well. In gmic.cpp all five commands avail themselves of gmic::check_cond() and, so near as I can tell, that method embodies no direct file system checking. If I wish to check the existence of a file system object, I should use isfile() or isdir(), with check, consistent with if, elif, for, and while. CLI behavior seems to bear this out:
- In fact,
${HOME}/.gmicexists, but the path to this file would also constitute a malformed G’MIC math expression:
gosgood@bertha ~ $ gmic -check "'${HOME}/.gmic'" -echo "Have default linux command module."
[gmic]-0./ Start G'MIC interpreter.
[gmic]-0./ *** Error *** Command 'check': Expression ''/home/gosgood/.gmic'' evaluated to false.
- Use
isfile()math expression withcheck, as withif,elif,for,while. This math expression resolves to True andcheckdoesn’t throw an exception, as one would expect.
gosgood@bertha ~ $ gmic -check "{isfile('${HOME}/.gmic')}" -echo "Have default linux command module."
[gmic]-0./ Start G'MIC interpreter.
[gmic]-0./ Have default linux command module.
[gmic]-0./ End G'MIC interpreter.
${HOME}/idontexist.missing doesn’t exist. The math expression isfile() resolves to False and check throws an exception, as one would expect.
gosgood@bertha ~ $ gmic -check "{isfile('${HOME}/idontexist.missing')}" -echo "Have the missing file."
[gmic]-0./ Start G'MIC interpreter.
[gmic]-0./ *** Error *** Command 'check': Expression '0' evaluated to false.
The conclusion I draw here that check always takes a math expression, and never regards its argument, alternatively, as a filename or directory.
Seems a case of documentary tally lag, no?
gosgood@bertha ~ $ gmic
gmic: GREYC's Magic for Image Computing: command-line interface
Version 3.0.0 (pre-release #211023)
(https://gmic.eu)
Copyright (c) Since 2008, David Tschumperlé / GREYC / CNRS.
(https://www.greyc.fr)