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 python or php). For instance, define your file test.gmic like this:
#!/usr/bin/gmic
# This file can be made executable.
echo "Starting entry point"
if date(3)==1
echo[] "\nIt's monday !\n"
else
echo[] "\nToday is not monday !\n"
fi
echo "Exiting entry point\n"
And then, on Unix :
$ chmod a+x test.gmic
$ ./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 _main_.
If you want to debug such a script file, you have to explicitly call _main_', because if you activate the debug` 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 :