Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Manage external services from within Emacs
Emacs Lisp Shell
branch: master

This branch is 208 commits behind rejeep:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
features
test
.ecukes
.gitignore
.travis.yml
Cask
Makefile
README.md
prodigy.el

README.md

Prodigy Build Status

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.

Installation

Add prodigy to your Cask file:

(depends-on "prodigy")

API

prodigy-define-service (&optional doc-string &rest args)

See doc-string for information about available properties to specify: M-x describe-function RET prodigy-define-service

Commands

Start Prodigy with M-x prodigy. You should see a list of all defined services.

Quit (q)

Quit Prodigy.

Next service (n)

Go to next service.

Prev service (p)

Go to previous service.

Start service (s)

Start service at line or marked services.

Stop service (S)

Stop service at line or marked services.

Restart service (r)

Restart service at line or marked services.

Display service process output ($)

Switch to buffer for service at line.

Open in browser (o)

Open service at line in browser.

Mark service (m)

Mark service at line.

Mark services with tag (t)

Mark services with tag.

Mark all services (M)

Mark all services.

Unmark service (u)

Unmark service at line.

Unmark services with tag (t)

Unmark services with tag.

Unmark all services (U)

Unmark all services.

Refresh GUI (g)

Refresh GUI.

Examples

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

Contribution is much welcome!

Install Cask if you haven't already, then:

$ cd /path/to/prodigy.el
$ cask

Run all tests with:

$ make
Something went wrong with that request. Please try again.