One of the few Java webapps I work on at work, has a very long startup time. Unfortunately since the server startup code is proprietary and owned by the vendor, there is not much I can do about that. However it is easy to forget to check if the server has started up, I decided to that I needed a way for my computer to notify me that the webapp was up. Here is how I came up with a simple and quick way to do just that in KDE.
So my webapp has an health endpoint that can be easily queried via HTTP. With httpie the HTTP query was very easy, however to script httpie to keep querying until the result came back, meaning the server was up. At first I tried do a
while with negation of the return code, and then I found on StackOverflow that the bash
until command will do just that. (Without needing to figure out the appropriate negation).
The second part was figuring how to create notifications in KDE via the console. Turns out that
kdialog will create both notifications and general popup alerts.
Putting the two together I came up:
until http :8080/my_health_endpoint; do echo 'Waiting...'; sleep 10; done; kdialog --passivepopup "Ready to go!" 10`
I added a sleep in there, to throttle the number of times that httpie would run. The second parameter on the kdialog dictates how long the notification popup will be around. Alternatively I could of used
--msgbox if I wanted a dialog that I had to press ‘OK’ on.