GithubHelp home page GithubHelp logo

doytsujin / gaffer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from owenthereal/gaffer

0.0 1.0 0.0 3.52 MB

Gaffer - Foreman on JVM

Home Page: https://github.com/jingweno/gaffer

License: MIT License

Shell 19.50% Java 80.50%

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

Watchers

 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.