deprecate colon-less syntax, add check command

This commit is contained in:
David Dollar
2011-01-27 16:14:43 -08:00
parent 977c80ffdd
commit 6b7d5e5161
9 changed files with 73 additions and 6 deletions
+12
View File
@@ -48,6 +48,14 @@ class Foreman::CLI < Thor
error ex.message
end
desc "check", "Validate your application's Procfile"
def check
processes = engine.processes_in_order.map { |p| p.first }
error "no processes defined" unless processes.length > 0
display "valid procfile detected (#{processes.join(', ')})"
end
private ######################################################################
def check_procfile!
@@ -64,6 +72,10 @@ private ######################################################################
private ######################################################################
def display(message)
puts message
end
def error(message)
puts "ERROR: #{message}"
exit 1
+13 -1
View File
@@ -25,7 +25,11 @@ class Foreman::Engine
@order = []
procfile.split("\n").inject({}) do |hash, line|
next if line.strip == ""
name, command = line.split(/:? +/, 2)
name, command = line.split(/ *: +/, 2)
unless command
warn_deprecated_procfile!
name, command = line.split(/ +/, 2)
end
process = Foreman::Process.new(name, command)
process.color = next_color
@order << process.name
@@ -178,4 +182,12 @@ private ######################################################################
@current_color >= COLORS.length ? "" : COLORS[@current_color]
end
def warn_deprecated_procfile!
return if @already_warned_deprecated
@already_warned_deprecated = true
puts "!!! This format of Procfile is deprecated, and will not work starting in v0.12"
puts "!!! Use a colon to separate the process name from the command"
puts "!!! e.g. web: thin start"
end
end