Manage external services from within Emacs
I came up with the idea when I got to work one Monday morning and before I could start working I had to manually start ten or so services.
To get rid of this tedious work, I started working on this Emacs plugin. Prodigy provides a Magit-like GUI to manage services in a simple way.
Add prodigy
to your Cask file:
(depends-on "prodigy")
See doc-string for information about available properties to specify:
M-x describe-function RET prodigy-define-service
Start Prodigy with M-x prodigy
. You should see a list of all defined
services.
Quit Prodigy.
Go to next service.
Go to previous service.
Start service at line or marked services.
Stop service at line or marked services.
Restart service at line or marked services.
Switch to buffer for service at line.
Open service at line in browser.
Mark service at line.
Mark services with tag.
Mark all services.
Unmark service at line.
Unmark services with tag.
Unmark all services.
Refresh GUI.
Start simple Python server:
(prodigy-define-service
:name "Python app"
:command "python"
:cwd "/path/to/my/project"
:args '("-m" "SimpleHTTPServer" "6001")
:tags '(work))
Start Node server:
(prodigy-define-service
"My awesome Node app."
:name "Node app"
:command "nodemon"
:cwd "/path/to/my/project"
:args '("app.coffee")
:port 6002
:tags '(work node))
Start Sinatra server:
(prodigy-define-service
:name "Sinatra"
:command "server"
:cwd "/path/to/my/project"
:path '("/path/to/my/project/bin")
:port 6003
:tags '(work ruby)
:init (lambda ()
;; Setup RVM
))
Contribution is much welcome!
Install Cask if you haven't already, then:
$ cd /path/to/prodigy.el
$ cask
Run all tests with:
$ make