Snarl is notification system for Windows and is inspired by Growl. With Snarl applications can send out notifications and Snarl displays them with alpha-blended pop-up windows.
After reading Grails Growl-link notifications in Linux and Grails script notifications via Growl I got inspired to do the same thing for Snarl. First we must of course install Snarl. Next we must download Snarl_CMD.exe. With Snalr_CMD.exe we can display notifications from the command line. So now we create our _Events.grooyv script in <home directory>/.grails/scripts. For each event we want a notification of we invoke the Snarl_CMD.exe command with the correct parameters:
eventStatusFinal = { message ->
snarlNotification('Final status', message)
}
eventStatusUpdate = { msg ->
snarlNotification('Status', msg)
}
eventCreatedFile = { fileName ->
snarlNotification('Created file', fileName)
}
eventStatusError = { message ->
snarlNotification('Error', message)
}
eventExiting = { code ->
snarlNotification('Exit', "Return code $code")
}
eventCreatedArtefact = { type, file ->
snarlNotification('Created artefct', "$type with name $file")
}
eventCompileStart = { kind ->
snarlNotification('Compiling', "Compiling $kind")
}
eventCompileEnd = { kind ->
snarlNotification('Compilation complete', "Compiled $kind")
}
eventPluginInstalled = { pluginName ->
snarlNotification('Plugin installed', pluginName)
}
void snarlNotification(title, message) {
def snarlCmd = [
'<path to Snarl_CMD.exe>/Snarl_CMD.exe',
'snShowMessage',
'10', // Display notification for 10 seconds
"$title",
"$message",
'<GRAILS_HOME>/media/icons/grails - 32x32 icon.png' // Nice icon to show with notification
]
snarlCmd.execute()
}
Now when we run for example grails run-app we get a Snarl notification: