Giter Site home page Giter Site logo

forego's People

Contributors

bernerdschaefer avatar codeskyblue avatar davidpelaez avatar ddollar avatar dijonkitchen avatar ecki avatar enr avatar glenux avatar inconshreveable avatar jmervine avatar jweslley avatar jwilder avatar kirs avatar kr avatar ngrilly avatar nhocki avatar nzsmartie avatar pwaller avatar satococoa avatar sgmac avatar subicura avatar tomwhoiscontrary avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

forego's Issues

Env not loaded when starting a single process

I'm starting with forego, and I'm trying this:

Procfile

test: echo $ENVVAR

testenv

ENVVAR=Hello!

I would expect that if I run a single process in the Procfile, I could load the environment, but it's ignored:

$ forego start -e testenv 
forego | starting test.1 on port 5000
test.1 | Hello!
$ forego start test -e testenv 
forego | starting test.1 on port 5000
test.1 | 

Forego binary support for alpinelinux

Linux precompiled binary doesnt work with alpinelinux.
Could come useful for people who are very keen on docker image size.
forego is much lightweight compared to supervisor which also requires other dependencies.
Its been compiled for personal use by using the below command

CGO_ENABLED=0 go build -installsuffix cgo github.com/ddollar/forego

Here is the link to the working alpinelinux binary.
Thanks.

Cannot download Windows binaries

Hello, I am trying to download the Windows binaries and I am getting a blank page when I click on either of the links (32bit and 64bit).

Chrome's network trace shows a 200 status code with a blank response (Content-Length: 0).

Doesn't accept empty lines in .env

Forego panic when an empty line (or more) is present in the .env file.

panic: runtime error: index out of range

goroutine 1 [running]:
main.parseEnv(0x210301930, 0x21028a110, 0x21028a110, 0x0, 0x0, ...)
    github.com/ddollar/forego/env.go:40 +0x1b5
main.ReadEnv(0x21028a0e0, 0x4, 0x0, 0x0, 0x0, ...)
    github.com/ddollar/forego/env.go:32 +0x12d
main.runStart(0x220560, 0x2102e3020, 0x0, 0x0)
    github.com/ddollar/forego/start.go:70 +0x263
main.main()
    github.com/ddollar/forego/main.go:30 +0x22d

goroutine 3 [syscall]:
os/signal.loop()
    /usr/local/Cellar/go/1.1.2/src/pkg/os/signal/signal_unix.go:21 +0x1c
created by os/signal.init·1
    /usr/local/Cellar/go/1.1.2/src/pkg/os/signal/signal_unix.go:27 +0x2f

goroutine 5 [chan receive]:
main.func·003()
    github.com/ddollar/forego/start.go:53 +0x3a
created by main.runStart
    github.com/ddollar/forego/start.go:60 +0x112

Binaries

Looks like the Binaries are currently unavailable.

Download link permissions

Links in README.md return a 403.

$ curl -v 'http://forego.s3.amazonaws.com/forego-darwin-amd64'
* About to connect() to forego.s3.amazonaws.com port 80 (#0)
*   Trying 72.21.211.171...
* connected
* Connected to forego.s3.amazonaws.com (72.21.211.171) port 80 (#0)
> GET /forego-darwin-amd64 HTTP/1.1
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8x zlib/1.2.5
> Host: forego.s3.amazonaws.com
> Accept: */*
>
< HTTP/1.1 403 Forbidden
< x-amz-request-id: 6C6D5E496615CD05
< x-amz-id-2: rJJFL8IjkwK9G8gHCz1qYmn+r9CmvFQq7mwusGMHNajrmAvu/CyrJ1Zd1QtI63x0
< Content-Type: application/xml
< Transfer-Encoding: chunked
< Date: Sun, 01 Sep 2013 04:36:01 GMT
< Server: AmazonS3
<
<?xml version="1.0" encoding="UTF-8"?>
* Connection #0 to host forego.s3.amazonaws.com left intact
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>6C6D5E496615CD05</RequestId><HostId>rJJFL8IjkwK9G8gHCz1qYmn+r9CmvFQq7mwusGMHNajrmAvu/CyrJ1Zd1QtI63x0</HostId></Error>* Closing connection #0

panic: runtime error: index out of range

@ddollar this is with api procfile

bundle exec forego start web
panic: runtime error: index out of range

goroutine 1 [running]:
main.parseProcfile(0x2102e0960, 0x21028b0d8, 0x225218, 0x2102e0960, 0x0, ...)
    /tmp/gopath_3hFoN/src/github.com/ddollar/forego/procfile.go:56 +0x29e
main.ReadProcfile(0x15a390, 0x8, 0x0, 0x0, 0x0, ...)
    /tmp/gopath_3hFoN/src/github.com/ddollar/forego/procfile.go:29 +0xbe
main.runStart(0x221560, 0x2102e0020, 0x1, 0x1)
    /tmp/gopath_3hFoN/src/github.com/ddollar/forego/start.go:49 +0x115
main.main()
    /tmp/gopath_3hFoN/src/github.com/ddollar/forego/main.go:27 +0x22d

goroutine 3 [syscall]:
os/signal.loop()
    /app/go/linux-amd64/src/pkg/os/signal/signal_unix.go:21 +0x1c
created by os/signal.init·1
    /app/go/linux-amd64/src/pkg/os/signal/signal_unix.go:27 +0x2f

When using -c to run multiple processes, they all receive the same $PORT env value

I just came across this issue:

$ forego start -c web=2
forego | starting web.1 on port 5000
forego | starting web.2 on port 5000
web.1  | Listing on port 5000...
web.2  | Listing on port 5000...
web.2  | panic: listen tcp :5000: bind: address already in use

While with foreman it works correctly:

$ foreman start -c web=2
23:36:03 web.1  | started with pid 62932
23:36:03 web.2  | started with pid 62933
23:36:03 web.1  | Listing on port 5000...
23:36:03 web.2  | Listing on port 5001...

Based on the code, I believe #55 solves this issue, but the PR description doesn't seem make any mention of it, and my Go skills are pretty basic still.

doesnt work with correctly with repl type apps

perhaps it has to do with runinng with repls

running sbt with forego exits immediately

[13:51:06 ] ~/github.com/heroku/heroku.scala $ forego run sbt
Listening for transport dt_socket at address: 5005
[info] Loading global plugins from /Users/scott/.sbt/plugins
[info] Loading project definition from /Users/scott/github.com/heroku/heroku.scala/project
[info] Set current project to heroku-scala-project (in build file:/Users/scott/github.com/heroku/heroku.scala/)
> [13:51:14 ] ~/github.com/heroku/heroku.scala $

In comparison, foreman works properly...

[13:50:21 ] ~/github.com/heroku/heroku.scala $ foreman run sbt
Listening for transport dt_socket at address: 5005
[info] Loading global plugins from /Users/scott/.sbt/plugins
[info] Loading project definition from /Users/scott/github.com/heroku/heroku.scala/project
[info] Set current project to heroku-scala-project (in build file:/Users/scott/github.com/heroku/heroku.scala/)
> exit
[13:51:26 ] ~/github.com/heroku/heroku.scala

Same behavior for irb

> [13:51:14 ] ~/github.com/heroku/heroku.scala $ forego run irb
Switch to inspect mode.

[13:54:34 ] ~/github.com/heroku/heroku.scala $ foreman run irb
irb(main):001:0>

option to skip port magic

In some cases I already have a $PORT env var set from a other system and I'd like to be able to run forego in a mode where it does not do anything special with the PORT variable.

doesnt work quite right with tab completion/history/readline

Actualy #8 doesnt totally work :(

maybe some sort of readline based issues...here is an example with sbt, basically tab completion and other things dont work, also when I quit out of a program where tab completion or other stuff went bad, my shell is hosed.
foreman run sbt, type c and hit tab

foreman run sbt
Listening for transport dt_socket at address: 5005
[info] Loading global plugins from /Users/scott/.sbt/plugins
[info] Updating {file:/Users/scott/.sbt/plugins/}default-1d9157...
[info] Resolving org.scala-sbt#precompiled-2_10_0;0.12.2 ...
[info] Done updating.
[info] Loading project definition from /Users/scott/github.com/heroku/heroku.scala/project
[info] Set current project to heroku-scala-project (in build file:/Users/scott/github.com/heroku/heroku.scala/)
> c
cache-directory           check-pgp-signatures      class-directory           classpath-configuration   classpath-filter          classpath-options         classpath-types           clean
clean-files               clean-keep-files          commands                  compile                   compile-inputs            compile-order             compile:                  compiler-cache
compilers                 configuration             conflict-warning          connect-input             console                   console-project           console-quick             copy-resources
credentials               cross-paths               cross-scala-versions      cross-target              cross-version
> c

forego run sbt, type c and hit tab

forego run sbt
Listening for transport dt_socket at address: 5005
[info] Loading global plugins from /Users/scott/.sbt/plugins
[info] Loading project definition from /Users/scott/github.com/heroku/heroku.scala/project
[info] Set current project to heroku-scala-project (in build file:/Users/scott/github.com/heroku/heroku.scala/)
> c

the cursor just tabs over a tabwidth above...

Also scrolling through history with up arrow doesnt work on par with foreman

foreman run sbt and type up arrow

foreman run sbt
Listening for transport dt_socket at address: 5005
[info] Loading global plugins from /Users/scott/.sbt/plugins
[info] Loading project definition from /Users/scott/github.com/heroku/heroku.scala/project
[info] Set current project to heroku-scala-project (in build file:/Users/scott/github.com/heroku/heroku.scala/)
> exit

forego run sbt and type up arrow

forego run sbt
Listening for transport dt_socket at address: 5005
[info] Loading global plugins from /Users/scott/.sbt/plugins
[info] Loading project definition from /Users/scott/github.com/heroku/heroku.scala/project
[info] Set current project to heroku-scala-project (in build file:/Users/scott/github.com/heroku/heroku.scala/)
> ^[[A

undefined: bufio.NewScanner

Installing this on ubuntu precise 32:

vagrant@precise32:~$ sudo go get -u github.com/ddollar/forego
# github.com/ddollar/forego/Godeps/_workspace/src/github.com/subosito/gotenv
/usr/lib/go/src/pkg/github.com/ddollar/forego/Godeps/_workspace/src/github.com/subosito/gotenv/gotenv.go:62: undefined: bufio.NewScanner

how to set root directory?

in foreman there was option to specify root

class_option :root,     :type => :string, :aliases => "-d", :desc => "Default: Procfile directory"`

i may have overlooked it, is there an option for this via forego?

Env file not loaded when specified full-path

On Linux, using version 0.15.0, when you specify the full-path to the environment file to load, it fails. When specifying a relative path, it works:

ProcFile.test:

test: echo "-- $FOO --"

testenv:

FOO=123
EXE=echo

Starting with these files normally just works:

$  forego start -f ProcFile.test -e testenv
forego | starting test.1 on port 5000
test.1 | -- 123 --
$

When Specifying full-path for the env file, the environment variables are not loaded:

$  forego start -f ProcFile.test -e ${PWD}/testenv
forego | starting test.1 on port 5000
test.1 | --  --
$

This used to work correctly in 0.13.1

Line split

Some lines are split:

metrics_database_writer | [Success] Servi
metrics_database_writer | ceName Metrics-Database-Writer

It should not have split the above line in two.

Installation failed

I tried installing via the README's instructions, but it didn't work:

Code$ rm -rf .gopath/
Code$ go get github.com/ddollar/forego
# github.com/daviddengcn/go-colortext
open .gopath/src/github.com/daviddengcn/go-colortext/ct.go: No such file or directory
# github.com/kr/text
open .gopath/src/github.com/kr/text/doc.go: No such file or directory
2 Code$ go install github.com/ddollar/forego
# github.com/daviddengcn/go-colortext
open .gopath/src/github.com/daviddengcn/go-colortext/ct.go: No such file or directory
# github.com/kr/text
open .gopath/src/github.com/kr/text/doc.go: No such file or directory
2 Code$

Proc names with dashes not working in 0.16.1 but works in master

First off, thanks for having a golang tool vs requiring ruby toolchain 👍 .

I found this bug while trying out the following project https://github.com/shakacode/react-webpack-rails-tutorial/, specifically the Procfiles there.

Sample Procfile.dev from tutorial:

# Basic procfile for dev work.
# Runs all processes. Development is faster if you pick one of the other Procfiles if you don't need
# some of the processes: Procfile.hot or Procfile.express

# Development rails requires both rails and rails-assets
# (and rails-server-assets if server rendering)
rails: REACT_ON_RAILS_ENV=HOT rails s -b 0.0.0.0

# Run the hot reload server for client development
hot-assets: sh -c 'rm app/assets/webpack/* || true && HOT_RAILS_PORT=3500 npm run hot-assets'

# Render static client assets
rails-static-client-assets: sh -c 'npm run build:dev:client'

# Render static client assets. Remove if not server rendering
rails-static-server-assets: sh -c 'npm run build:dev:server'

# Run an express server if you want to mock out your endpoints. No Rails involved!
# Disable this if you are not using it.
# It's a great way to prototype UI especially with non-Rails developers!
express: sh -c 'HOT_PORT=4000 npm start'

That procfile works under foreman but not under forego 0.16.1.

If I change the rails: line slightly (use sh -c around command) it will also work under master copy of forego.

If I make the following changes (in PR https://github.com/shakacode/react-webpack-rails-tutorial/pull/310/files) then it works under forego... ie changing the names from dash delimited to underscore delimited (s/hot-assets/hot_assets/g), then it works under forego 0.16.1.

So seems like something changed for the better between 0.16.1 and now. My thought is that dashes are considered permissible according to forego's regex (https://github.com/ddollar/forego/blob/master/procfile.go#L12) and should work.

Does it make sense to cut another release for forego since it's working better in master?

Push out a new release

When you have time (no rush), would you be able to push out a new release? There's some helpful fixes in master that haven't been released yet.

master doesn't compile with go get

$ go get -u github.com/ddollar/forego
# github.com/ddollar/forego
src/github.com/ddollar/forego/run.go:33: ps.Start undefined (type *Process has no field or method Start)
src/github.com/ddollar/forego/start.go:66: undefined: ShutdownProcesses
src/github.com/ddollar/forego/start.go:90: ps.Start undefined (type *Process has no field or method Start)
src/github.com/ddollar/forego/start.go:96: undefined: ShutdownProcesses

Looks like Process needs to define a Start method, or maybe embed the exec.Cmd.

ARM builds

Hi,
Can you add ARM builds ?

linux-armel: GOOS=linux GOARCH=arm GOARM=5
linux-armhf: GOOS=linux GOARCH=arm GOARM=6

Thank you

Comments in Procfile cause errors

Taking the following Procfile:

# use this with `foreman start`
web: rackup rack.ru -p $PORT

Foreman says:

$ foreman check
valid procfile detected (web)

And starts properly, but forego, no go:

$ forego start
panic: runtime error: index out of range

goroutine 1 [running]:
main.parseProcfile(0x2102fc930, 0x21028c0d8, 0x226218, 0x2102fc930, 0x0, ...)
    /Users/luis/local/go/src/github.com/ddollar/forego/procfile.go:56 +0x29e
main.ReadProcfile(0x15a630, 0x8, 0x0, 0x0, 0x0, ...)
    /Users/luis/local/go/src/github.com/ddollar/forego/procfile.go:29 +0xbe
main.runStart(0x222560, 0x2102e4020, 0x0, 0x0)
    /Users/luis/local/go/src/github.com/ddollar/forego/start.go:49 +0x115
main.main()
    /Users/luis/local/go/src/github.com/ddollar/forego/main.go:27 +0x22d

goroutine 3 [syscall]:
os/signal.loop()
    /opt/local/go/src/pkg/os/signal/signal_unix.go:21 +0x1c
created by os/signal.init·1
    /opt/local/go/src/pkg/os/signal/signal_unix.go:27 +0x2f

go version go1.1.2 darwin/amd64

Removing the comment fixes the issue.

Thank you! ❤️ ❤️ ❤️

error output not complete

Running into an issue where forego doesn't seem to be giving all of the error output that regular foreman used to (and still does). In a node setup with a server.js that just errors out...

throw new Error('stop!');

With foreman, I get a full stack trace:

$ foreman start
17:29:48 web.1  | started with pid 2303
17:29:48 web.1  | /Users/Storm/dev/ianstormtaylor/damp-retreat-7073/server.js:2
17:29:48 web.1  | throw new Error('stop!');
17:29:48 web.1  | ^
17:29:48 web.1  | Error: stop!
17:29:48 web.1  |     at Object.<anonymous> (/Users/Storm/dev/ianstormtaylor/damp-retreat-7073/server.js:2:7)
17:29:48 web.1  |     at Module._compile (module.js:434:26)
17:29:48 web.1  |     at Object.Module._extensions..js (module.js:452:10)
17:29:48 web.1  |     at Module.load (module.js:355:32)
17:29:48 web.1  |     at Function.Module._load (module.js:310:12)
17:29:48 web.1  |     at Function.Module.runMain (module.js:475:10)
17:29:48 web.1  |     at startup (node.js:117:18)
17:29:48 web.1  |     at node.js:951:3
17:29:48 web.1  | exited with code 1
17:29:48 system | sending SIGTERM to all processes
SIGTERM received

But with forego I only get the offending line, which makes it super hard to debug issues:

$ forego start
forego | starting web.1 on port 5000
web.1  | /Users/Storm/dev/ianstormtaylor/damp-retreat-7073/server.js:2
$ heroku local
forego | starting web.1 on port 5000
web.1  | /Users/Storm/dev/ianstormtaylor/damp-retreat-7073/server.js:2

Am I doing something wrong? Would love to get this fixed, since it makes it impossible to quickly resolve errors when using heroku local. Thanks!

Ruby version changing in `forego run` when using `chruby`

I'm using chruby to manage my ruby versions. When running forego run <some ruby command> it seems to be using my default ruby, not my current ruby:

$ forego run rake db:migrate
Your Ruby version is 2.0.0, but your Gemfile specified 1.9.3
$ ruby --version
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-darwin13.0.0]
$ cat .ruby-version
1.9.3-p429
$ chruby 1.9.3-p429 # just to be sure
$ forego run ruby --version
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0]
$ foreman run ruby --version
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-darwin13.0.0]
$ env | grep -wE 'RUBY_.*|PATH'
PATH=/Users/bjeanes/.gem/ruby/1.9.3/bin:/Users/bjeanes/.rubies/1.9.3-p429/lib/ruby/gems/1.9.1/bin:/Users/bjeanes/.rubies/1.9.3-p429/bin:/Users/bjeanes/bin:/usr/local/bin:/usr/local/sbin:/usr/X11/bin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/bjeanes/Code/Go/bin
RUBY_AUTO_VERSION=1.9.3-p429
RUBY_ROOT=/Users/bjeanes/.rubies/1.9.3-p429
RUBY_ENGINE=ruby
RUBY_VERSION=1.9.3
$ forego run 'echo $PATH'
/Users/bjeanes/.gem/ruby/2.0.0/bin:/Users/bjeanes/.rubies/2.0.0-p0/lib/ruby/gems/2.0.0/bin:/Users/bjeanes/.rubies/2.0.0-p0/bin:/Users/bjeanes/bin:/usr/local/bin:/usr/local/sbin:/usr/X11/bin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/bjeanes/Code/Go/bin

As you can see, this behavior differs from foreman and is of course unexpected. chruby works my modifying the PATH variable. As you can see the PATH includes 1.9.3 ruby prior to invocation but during invocation it's pointing to 2.0.0. This is probably a weird sub-shell interaction with chruby but thought you may want to hear about it anyway.

Use dedicated dotenv library?

Hi @ddollar,

I've got a go dotenv port at https://github.com/joho/godotenv which might be worth integrating to make forego and foreman closer to 100% compatible. I'd ported all the tests from the ruby dotenv library to ensure compatibility.

I'm happy to do a pull request if you want to use the library, just thought it'd be polite to ask first incase you wanted to do the .env handling yourself.

i386/Way to see all compiled releases

Is there a way to see all compiled releases?
#47 links to gobuild.io but that seems to be a dead link now.

The releases in the README link to an amd64 build, is it possible to get an i386 release?

python output not displaying

I think there is maybe a stdout flushing issue when using forego on windows. It doesn't display output from this django app: https://github.com/heroku/python-getting-started

C:\Users\IEUser\tmp\python-getting-started>type Procfile
web: python manage.py runserver 0.0.0.0:5000

C:\Users\IEUser\tmp\python-getting-started>forego start web
forego | starting web.1 on port 5000

C:\Users\IEUser\tmp\python-getting-started>python manage.py runserver 0.0.0.0:5000
July 08, 2015 - 15:01:47
Django version 1.8.1, using settings 'gettingstarted.settings'
Starting development server at http://0.0.0.0:5000/
Quit the server with CTRL-BREAK.
[08/Jul/2015 15:01:51]"GET / HTTP/1.1" 200 6525
[08/Jul/2015 15:01:51]"GET /static/lang-logo.png HTTP/1.1" 304 0

It still functions, but it doesn't display any output. After I press ctrl-c, it does show one line of output.

Allow local config with .forego

I'm currently using Foreman's .foreman file to override the default port without having to run the command differently.

It'd be great to have forego allow the same thing. Either by reading .forman or reading from a new .forego file.

forego start on Windows 7: cannot override default port

Hello,

I'm posting this as an issue because I don't see another way to ask a question.

I have looked at the Usage section of the README and also at the source code, and have tried adding '-p %PORT%' to the Procfile (%% because it's Windows) and '-p %PORT%' to 'forego start' and neither seems to work. I always end up with port 5000.

'forego version' tells me I am using version 0.10.0

Any guidance will be appreciated. Thanks!

Default port behavior differs from Foreman

I was trying to use alternatives to Foreman, since it was a little buggy with file handling, and I noticed some differences.

I set up this gist after writing one for Honch to test and demonstrate the differences:

  • Foreman's port precedence is -p option, .env file, PORT variable, default of 5000
  • Forego's port precedence is PORT variable, -p option, default of 5000

Forego completely ignores the PORT variable in .env, which could actually be classified as a completely different issue.

Links to the precompiled binaries seem to be broken

Clicking on any of the binary download links shown on the README (or attempting a wget) fails.

Example:

Linux

leads to an error page that shows this:

An error occurred in the application and your page could not be served. 
Please try again in a few moments.
If you are the application owner, check your logs for details.

Links have been broken since 3 PM CST on March 27th.

-e doesn't support multiple env files

I use something like this fairly often: foreman run -e .env,.env-prod ...; forego doesn't seem to support comma-separated -e lists.

I think this is highly desirable behavior; I'll happily submit a pull if you agree.

start subset of processes

forego doesn't allow to start a subset of processes, like foreman does.

Given this Procfile:

web: ./runweb.sh
worker: ./runworker.sh
db: ./rundb.sh

One can run two web processes and one worker with foreman like so:

$ foreman start web=2,worker=1
web.1 ...
web.2 ...
worker.1 ...
....

There's no need to specify db=0.

However, forego will always run the entire set of processes:

$ forego start -c web=2,worker=1
web.1 ...
web.2 ...
worker.1 ...
db.1 ...
...

It's possible to limit to one process name with forego start -c web=2,worker=1 web, but I'd like to run a subset as with foreman.

Am I simply not able to figure out the the right way to do it or is it not supported?

Add dynamic padding for process portion of output

The ruby version of foreman pads the output so that the logs line up nicely:

13:55:33 admin.1  | [13:55:33] Finished 'favicon' after 600 ms
13:55:33 api.1    | debug: [memory]  rss=48910336, heapTotal=30214176, heapUsed=16356896
13:55:33 api.1    | info: [main] Cluster Worker[1] API server running on port 5100
13:55:34 admin.1  | [13:55:34] Finished 'html' after 1.73 s
13:55:42 admin.1  | [13:55:42] Finished 'bootstrap-fonts' after 9.54 s
13:55:43 admin.1  | [13:55:43] Finished 'images' after 11 s
13:55:43 admin.1  | [13:55:43] Starting 'watch'...
13:55:43 admin.1  | [13:55:43] Finished 'watch' after 18 ms

When using forego the output is jaggy:

worker.1 | Detected we are running locally -- using nodemon
web.1   | info: [init] Initialized with Parse environment HustleDevTyler
worker.1 | info: [init] Initialized with Parse environment HustleDevTyler
web.1   | debug: [memory]  rss=48816128, heapTotal=30214176, heapUsed=16355432
web.1   | info: [main] Cluster Worker[1] API server running on port 5000

Are there any plans to add dynamic padding to the process portion of the log lines? I noticed this behavior in the JavaScript foreman clone as well.

Export feature

foreman export is pretty useful for production deployment: developer can just add this command after "deploy:publishing" (or something like that). Are there any plans on supporting that functionality in forego?

forego inside forego

I could be wrong but in foreman, if I start a procfile which contains another foreman start, it seems to be managed by the master foreman process (i.e. sigterms can be propagated). It looks like this is not true under forego anymore (it spawns separate process).

Not sure if this is a design choice or there's some other flags to support it.

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.