50 lines
985 B
Ruby
50 lines
985 B
Ruby
|
|
class OSRMError < StandardError
|
|
attr_accessor :msg, :code, :process
|
|
|
|
def initialize process, code, msg, log, lines
|
|
@process = process
|
|
@code = code
|
|
@msg = msg
|
|
@lines = lines
|
|
@log = log
|
|
@extract = log_tail @log, @lines
|
|
end
|
|
|
|
def to_s
|
|
"*** #{@msg}\nLast #{@lines} lines from #{@log}:\n#{@extract}\n"
|
|
end
|
|
|
|
private
|
|
|
|
def log_tail path, n
|
|
File.open(path) do |f|
|
|
return f.tail(n).map { |line| " > #{line}" }.join "\n"
|
|
end
|
|
end
|
|
end
|
|
|
|
class OsmosisError < OSRMError
|
|
def initialize code, msg
|
|
super 'osmosis', code, msg, PREPROCESS_LOG_FILE, 40
|
|
end
|
|
end
|
|
|
|
class ExtractError < OSRMError
|
|
def initialize code, msg
|
|
super 'osrm-extract', code, msg, PREPROCESS_LOG_FILE, 3
|
|
end
|
|
end
|
|
|
|
class PrepareError < OSRMError
|
|
def initialize code, msg
|
|
super 'osrm-prepare', code, msg, PREPROCESS_LOG_FILE, 3
|
|
end
|
|
end
|
|
|
|
class RoutedError < OSRMError
|
|
def initialize msg
|
|
super 'osrm-routed', nil, msg, OSRM_ROUTED_LOG_FILE, 3
|
|
end
|
|
end
|