New in 2.8.1 :
As you may know, G’MIC defines its own script language and embeds the corresponding interpreter. In upcoming version 2.8.1, a special running mode will be added in G’MIC, allowing
gmic to implicitly generate an entry point in a
.gmic file, so that including such a file with command
input automatically runs the code defined in the entry point.
This mode is activated only when
gmic is called with a single argument, which is the
.gmic file to consider, i.e.
$ gmic test.gmic
In this case, if
test.gmic contains some code defined outside the body of some user-defined commands, then it will be considered as a part of a new implicit command
_main_, and executed after loading the file.
Moreover, on Unix systems, you can use a Shebang line in
test.gmic and make it directly executable (just as you can do it with
php). For instance, define your file
test.gmic like this:
# This file can be made executable.
echo "Starting entry point"
echo "\nIt's monday !\n"
echo "\nToday is not monday !\n"
echo "Exiting entry point\n"
And then, on Unix :
$ chmod a+x test.gmic
[gmic]-0./_main_/ Starting entry point
Today is not monday !
[gmic]-0./_main_/ Exiting entry point
On other systems (that do not support Shebang), you can get the same behavior with
$ gmic test.gmic
You can see in the first and last
echo output on the command line that you are indeed running code in a newly created command named
If you want to debug such a script file, you have to explicitly call
_main_', because if you activate thedebug` flag on the command line, you are not in the situation of the special running mode, so:
$ gmic test.gmic _main_ debug
In you are interested, you will find some example of such executable files here :