DevEnvCtrl

Als Software-Entwickler hat man den Vorteil, dass man sich Programme, die man sich wünscht, aber die es nicht gibt, selber programmieren kann. Aus solch einem Wunsch nach einem Programm für Mac OS X zur Kontrolle der Dienste meiner Entwicklungsumgebung...

Als Software-Entwickler hat man den Vorteil, dass man sich Programme, die man sich wünscht, aber die es nicht gibt, selber programmieren kann. Aus solch einem Wunsch nach einem Programm für Mac OS X zur Kontrolle der Dienste meiner Entwicklungsumgebung entstand auch das Projekt “DevEnvCtrl” (kurz für “Development Environment Control”).

Motivation

In unseren Projekten arbeiten wir mit unterschiedlichen Datenbanksystemen, wie z.B. PostgreSQL, MySQL oder MongoDB. Für einige wenige unserer Projekt benötigen wir in der Entwicklung weitere Dienste, wie beispielsweise Apache oder memcached. Im Normalfall werden diese Dienste mit dem Hochfahren des Computers gestartet und mit dem Herunterfahren beendet. So belegen sie auch immer Arbeitsspeicher, unabhängig davon, ob sie gerade benötigt werden oder nicht.

Zielsetzung

In der Regel benötigen wir jedoch nur einen Teil der installierten Dienste in einem bestimmten Projekt und nicht alle gleichzeitig. Daher möchte ich diese gezielt kontrollieren bzw. starten und stoppen. Ich möchte nur die Dienste starten, die ich für die Arbeiten am Projekt benötige und andere, die ich gerade nicht benötige, beenden. Dadurch nehmen Dienste, die ich nicht benötige, auch nicht unnötig Arbeitsspeicher ein. Die Kontrolle der Dienste soll zudem auf eine einfache, schnelle und bequeme Weise möglich sein.

Umsetzung

Da ich nur eine überschaubare Anzahl von Diensten kontrollieren möchte, ist es nicht nötig eine “Fenster-Anwendung” umzusetzen. Stattdessen setze ich auf eine unkomplizierte “Statusbar-Anwendung” die lediglich ein Menü anzeigt. Das hat zudem den Vorteil, dass die Anwendung jederzeit über das Icon in der Statusbar erreichbar ist.

DevEnvCtrl v1.3.3 - Screenshot
Das Menü unter dem Icon von DevEnvCtrl

Auf dem Screenshot ist das Menü unter dem Icon von DevEnvCtrl zu sehen. Im Menü werden die darüber kontrollierbaren Dienste aufgeführt. An den Häkchen neben dem Namen lässt sich der Status eines Dienstes ablesen: Er läuft, wenn ein Häkchen angezeigt wird. Mit einem einfach Klick auf einen Dienst lässt sich dieser starten bzw. stoppen. Da in Zukunft weitere Dienste hinzukommen könnten, ist die Anwendung in dieser Hinsicht konfigurierbar. Über XML-Dateien (bzw. Property-Lists) lässt sie sich um weitere Dienste ergänzen.

Mit Hilfe der kleinen Anwendung kann ich nun mit zwei Klicks jeden dort aufgeführten Dienst starten oder beenden. Mit nur einem Klick kann ich den Status der Dienste einsehen. Und das – meiner Meinung nach – einfach, schnell und bequem.

Wer Interesse hat, kann sich das Projekt auf GitHub ansehen. Dort steht neben dem Quelltext auch eine ausführbare Anwendung für Mac OS X bereit: github.com/mmichaa/DevEnvCtrl

Ausblick

Um die Konfiguration der im Menü auswählbaren Dienste benutzerfreundlicher zu gestalten, wäre es möglich, in einem Fenster alle auf dem System verfügbaren Dienste zur Auswahl anzubieten. Zusätzlich könnte man in diesem Fenster über die Auflistung das Starten und Stoppen sämtlicher Dienste ermöglichen.


Zur Blog-Übersicht