<project>

    <macrodef name="quiet">
        <element name="body" implicit="yes" />
        <!-- https://stackoverflow.com/questions/5462732/make-ant-quiet-without-the-q-flag/19186231#19186231 -->
        <sequential>
            <local name="lastLevel" />
            <script language="javascript">
                function lastLevel() {
                    try {
                        var field = project.getBuildListeners()[0].class.getDeclaredField('msgOutputLevel');
                        field.setAccessible(true);
                        return field.get(project.getBuildListeners()[0]);
                    } catch (e) {
                        return 2; // INFO
                    }
                }

                project.setNewProperty('lastLevel', lastLevel());
                project.getBuildListeners()[0].setMessageOutputLevel(0);
            </script>
            <body />
            <script language="javascript">
                project.getBuildListeners()[0].setMessageOutputLevel(project.getProperty('lastLevel'));
            </script>
        </sequential>
    </macrodef>

</project>
