Giter Club home page Giter Club logo

gaffer's Introduction

gaffer Build Status

Foreman on JVM. It manages Procfile-based applications.

Requirement

gaffer requires Java 1.7.0 or greater to run and develop.

Installation

Homebrew

If you're running OSX, you could:

$ brew tap jingweno/gaffer
$ brew install gaffer
Precompiled Packages

Download the latest release and unzip it.

Compile from Source

To compile gaffer from source, you'll need to have maven installed, and then run:

$ mvn package
$ unzip target/gaffer-0.0.1-SNAPSHOT-dist.zip -d target
$ ./target/gaffer-0.0.1-SNAPSHOT-dist/bin/gaffer help

Procfile

A Procfile should contain both a name for the process and the command used to run it. For example:

$ cat Procfile
web: bundle exec thin start
job: bundle exec rake jobs:work

A process name may contain letters, numbers and the underscore character.

Usage

$ gaffer start
$ gaffer start web
$ gaffer start -f Procfile.test -c worker=2
$ gaffer run java -jar target/hello-world-0.0.1-SNAPSHOT.jar server

Implementation

gaffer takes advantage of akka's actors to supervise child-processes. More details to come as a blog post.

Why

gaffer does almost the same thing as foreman. However, it empowers existing JVM build tools to manage Procfile-like applications. To give you a taste on what I'm working on, assuming you declare the following in Maven's pom.xml:

<plugin>
  <groupId>com.owenou</groundId>
  <artifactId>maven-gaffer</artifactId>
  <processes>
    <process>
      <name>web</name>
      <main>web.Main</main>
    </process>
    <process>
      <name>job</name>
      <shell>./bin/job start</shell>
    </process>
  </processes>
</plugin>

Running mvn gaffer:start will start all the processes associated with your app just as you run it from the gaffer CLI.

Roadmap

  • maven plugin
  • gradle plugin

License

See License.md.

gaffer's People

Contributors

owenthereal avatar

Stargazers

 avatar Alex Collins avatar Kei avatar Edison Neto avatar 大関 金城 秀喜 カシオ avatar  avatar  avatar yushiwho avatar Nils Liebelt avatar  avatar Happy bull avatar Sean Reilly avatar Mehmet Ali SAHINOGULLARI avatar salotz avatar Guilherme I F L Weizenmann avatar Alexey Nikolaenko avatar Jearvon Dharrie avatar Marco Pensallorto avatar Den Patin avatar  avatar Roman Niukhalov avatar Patrick Cieplak avatar Andy Chrzaszcz avatar Eko Fedriyanto avatar rong fengliang avatar Daniele Orlando avatar trkw avatar Mr. Hsu avatar eg avatar Jack Galilee avatar Thomas Falch Johansen avatar Piotr Limanowski avatar Łukasz Korecki avatar Vitor avatar guoming avatar Senthil  V S avatar tom.wen avatar Angus H. avatar Yusuke Ikeda avatar Yaming avatar Karsten Gresch avatar Gabriel Bauman avatar Jordiet Yahii avatar Andrew Lee avatar Jerome Velociter avatar moznion avatar Christos Kapasakalidis avatar benve avatar Chris Cowan avatar  avatar M Haidar Hanif avatar J. Christian Ferrer-Garcia avatar Lewis Brown avatar  avatar Phillip Rhodes avatar Ricardo Gladwell avatar

Watchers

Abhik Khanra avatar James Cloos avatar Eko Fedriyanto avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.