diff --git a/processfile/procfile.go b/processfile/procfile.go index 5a6ceb1f..2d62977a 100644 --- a/processfile/procfile.go +++ b/processfile/procfile.go @@ -10,7 +10,7 @@ import ( // Procfile contains the definition of a Procfile. type Procfile map[string]string -var regex = regexp.MustCompile(`^(?P[a-zA-Z0-9]+): (?P.*)$`) +var regex = regexp.MustCompile(`^(?P[a-zA-Z0-9_-]+): (?P.*)$`) // New creates a new Procfile in-memory. func New() Procfile { diff --git a/processfile/procfile_test.go b/processfile/procfile_test.go index bd6ed462..7cefa94f 100644 --- a/processfile/procfile_test.go +++ b/processfile/procfile_test.go @@ -86,19 +86,21 @@ func Test_Read(t *testing.T) { valid := `web: bin/server worker: bundle exec sidekiq -c config/sidekiq.yml -cron: bin/scheduler` +cron: bin/scheduler +my_process: echo "hello"` procf, err := processfile.Read(strings.NewReader(valid)) if err != nil { t.Fatalf("unexpected error when reading procfile: %v", err) } - Contain(t, []string{"web", "worker", "cron"}, procf.Processes()) + Contain(t, []string{"web", "worker", "cron", "my_process"}, procf.Processes()) expected := map[string]string{ - "web": "bin/server", - "worker": "bundle exec sidekiq -c config/sidekiq.yml", - "cron": "bin/scheduler", + "web": "bin/server", + "worker": "bundle exec sidekiq -c config/sidekiq.yml", + "cron": "bin/scheduler", + "my_process": `echo "hello"`, } for proc, cmd := range expected {