Is it possible to use changetype executeCommand to run a shellscript or an executable?

We have a utility which generates database code, based on metadata which is added using liquibase. This utility is always executed after running a migration with liquibase. However, in some cases it would be very useful if calls to this utilty could be done from the changelog itself, before performing other actions in subsequent changesets.

I have tried to figure out a way to do this using the executeCommand changetype, but without success. This is what is said in the documentation, however I have not found any practical examples showing how this can be used. So far I have been unable to figure out how to do what I want.

You can typically use the executeCommand Change Type to run a script using a specific executable. > One reason to use executeCommand is to insert or update data.

Here is an example of using an executeCommand change in an XML changelog

    <changeSet id="windows_execute_command_test" author="some_author">
        <executeCommand executable="ping.exe" os="Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10">
            <arg value="127.0.0.1"/>
            <arg value="-n"/>
            <arg value="1"/>
        </executeCommand>
        <executeCommand executable="/bin/ls" os="Linux, Mac OS X, SunOS, FreeBSD"/>
        <executeCommand executable="/usr/bin/ls" os="SunOS"/>
    </changeSet>

The executable needs to be on the system path. You can also use changelog properties in your arguments to allow more customization.