update rakefile to work with lua profiles
This commit is contained in:
parent
dc86007fa9
commit
3ec4a049c5
57
Rakefile
57
Rakefile
@ -4,8 +4,8 @@ require 'digest/sha1'
|
|||||||
require 'cucumber/rake/task'
|
require 'cucumber/rake/task'
|
||||||
require 'sys/proctable'
|
require 'sys/proctable'
|
||||||
|
|
||||||
SANDBOX = 'sandbox'
|
DATA_FOLDER = 'sandbox'
|
||||||
DATA_FOLDER = 'osm_data'
|
PROFILE = 'bicycle'
|
||||||
|
|
||||||
Cucumber::Rake::Task.new do |t|
|
Cucumber::Rake::Task.new do |t|
|
||||||
t.cucumber_opts = %w{--format pretty}
|
t.cucumber_opts = %w{--format pretty}
|
||||||
@ -62,12 +62,12 @@ def write_server_ini osm_file
|
|||||||
IP = 0.0.0.0
|
IP = 0.0.0.0
|
||||||
Port = 5000
|
Port = 5000
|
||||||
|
|
||||||
hsgrData=#{DATA_FOLDER}/#{osm_file}.osrm.hsgr
|
hsgrData=#{osm_file}.osrm.hsgr
|
||||||
nodesData=#{DATA_FOLDER}/#{osm_file}.osrm.nodes
|
nodesData=#{osm_file}.osrm.nodes
|
||||||
edgesData=#{DATA_FOLDER}/#{osm_file}.osrm.edges
|
edgesData=#{osm_file}.osrm.edges
|
||||||
ramIndex=#{DATA_FOLDER}/#{osm_file}.osrm.ramIndex
|
ramIndex=#{osm_file}.osrm.ramIndex
|
||||||
fileIndex=#{DATA_FOLDER}/#{osm_file}.osrm.fileIndex
|
fileIndex=#{osm_file}.osrm.fileIndex
|
||||||
namesData=#{DATA_FOLDER}/#{osm_file}.osrm.names
|
namesData=#{osm_file}.osrm.names
|
||||||
EOF
|
EOF
|
||||||
File.open( 'server.ini', 'w') {|f| f.write( s ) }
|
File.open( 'server.ini', 'w') {|f| f.write( s ) }
|
||||||
end
|
end
|
||||||
@ -83,46 +83,48 @@ end
|
|||||||
|
|
||||||
desc "Setup config files."
|
desc "Setup config files."
|
||||||
task :setup do
|
task :setup do
|
||||||
Dir.mkdir "#{SANDBOX}/#{DATA_FOLDER}" unless File.exist? "#{SANDBOX}/#{DATA_FOLDER}"
|
Dir.mkdir "#{DATA_FOLDER}" unless File.exist? "#{DATA_FOLDER}"
|
||||||
['server.ini','speedprofile.ini','extractor.ini','contractor.ini'].each do |file|
|
['server.ini','extractor.ini','contractor.ini'].each do |file|
|
||||||
unless File.exist? "#{SANDBOX}/#{file}"
|
unless File.exist? "#{DATA_FOLDER}/#{file}"
|
||||||
puts "Copying #{file} template to sandbox/#{file}"
|
puts "Copying #{file} template to #{DATA_FOLDER}/#{file}"
|
||||||
FileUtils.cp file, "#{SANDBOX}/#{file}"
|
FileUtils.cp file, "#{DATA_FOLDER}/#{file}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Download OSM data."
|
desc "Download OSM data."
|
||||||
task :download => :setup do
|
task :download => :setup do
|
||||||
|
Dir.mkdir "#{DATA_FOLDER}" unless File.exist? "#{DATA_FOLDER}"
|
||||||
puts "Downloading..."
|
puts "Downloading..."
|
||||||
raise "Error while downloading data." unless system "curl http://download.geofabrik.de/osm/europe/#{osm_data_country}.osm.pbf -o #{SANDBOX}/#{DATA_FOLDER}/#{osm_data_country}.osm.pbf"
|
puts "curl http://download.geofabrik.de/openstreetmap/europe/#{osm_data_country}.osm.pbf -o #{DATA_FOLDER}/#{osm_data_country}.osm.pbf"
|
||||||
|
raise "Error while downloading data." unless system "curl http://download.geofabrik.de/openstreetmap/europe/#{osm_data_country}.osm.pbf -o #{DATA_FOLDER}/#{osm_data_country}.osm.pbf"
|
||||||
if osm_data_area_bbox
|
if osm_data_area_bbox
|
||||||
puts "Cropping and converting to protobuffer..."
|
puts "Cropping and converting to protobuffer..."
|
||||||
raise "Error while cropping data." unless system "osmosis --read-pbf file=#{SANDBOX}/#{DATA_FOLDER}/#{osm_data_country}.osm.pbf --bounding-box #{osm_data_area_bbox} --write-pbf file=#{SANDBOX}/#{DATA_FOLDER}/#{osm_data_area_name}.osm.pbf omitmetadata=true"
|
raise "Error while cropping data." unless system "osmosis --read-pbf file=#{DATA_FOLDER}/#{osm_data_country}.osm.pbf --bounding-box #{osm_data_area_bbox} --write-pbf file=#{DATA_FOLDER}/#{osm_data_area_name}.osm.pbf omitmetadata=true"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Crop OSM data"
|
desc "Crop OSM data"
|
||||||
task :crop do
|
task :crop do
|
||||||
if osm_data_area_bbox
|
if osm_data_area_bbox
|
||||||
raise "Error while cropping data." unless system "osmosis --read-pbf file=#{SANDBOX}/#{DATA_FOLDER}/#{osm_data_country}.osm.pbf --bounding-box #{osm_data_area_bbox} --write-pbf file=#{SANDBOX}/#{DATA_FOLDER}/#{osm_data_area_name}.osm.pbf omitmetadata=true"
|
raise "Error while cropping data." unless system "osmosis --read-pbf file=#{DATA_FOLDER}/#{osm_data_country}.osm.pbf --bounding-box #{osm_data_area_bbox} --write-pbf file=#{DATA_FOLDER}/#{osm_data_area_name}.osm.pbf omitmetadata=true"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Reprocess OSM data."
|
desc "Reprocess OSM data."
|
||||||
task :process => :setup do
|
task :process => :setup do
|
||||||
Dir.chdir SANDBOX do
|
Dir.chdir DATA_FOLDER do
|
||||||
raise "Error while extracting data." unless system "../osrm-extract #{DATA_FOLDER}/#{osm_data_area_name}.osm.pbf"
|
raise "Error while extracting data." unless system "../osrm-extract #{osm_data_area_name}.osm.pbf ../profiles/#{PROFILE}.lua"
|
||||||
puts
|
puts
|
||||||
raise "Error while preparing data." unless system "../osrm-prepare #{DATA_FOLDER}/#{osm_data_area_name}.osrm #{DATA_FOLDER}/#{osm_data_area_name}.osrm.restrictions"
|
raise "Error while preparing data." unless system "../osrm-prepare #{osm_data_area_name}.osrm #{osm_data_area_name}.osrm.restrictions ../profiles/#{PROFILE}.lua"
|
||||||
puts
|
puts
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Delete preprocessing files."
|
desc "Delete preprocessing files."
|
||||||
task :clean do
|
task :clean do
|
||||||
File.delete *Dir.glob("#{SANDBOX}/#{DATA_FOLDER}/*.osrm")
|
File.delete *Dir.glob("#{DATA_FOLDER}/*.osrm")
|
||||||
File.delete *Dir.glob("#{SANDBOX}/#{DATA_FOLDER}/*.osrm.*")
|
File.delete *Dir.glob("#{DATA_FOLDER}/*.osrm.*")
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Run all cucumber test"
|
desc "Run all cucumber test"
|
||||||
@ -133,7 +135,7 @@ end
|
|||||||
|
|
||||||
desc "Run the routing server in the terminal. Press Ctrl-C to stop."
|
desc "Run the routing server in the terminal. Press Ctrl-C to stop."
|
||||||
task :run => :setup do
|
task :run => :setup do
|
||||||
Dir.chdir SANDBOX do
|
Dir.chdir DATA_FOLDER do
|
||||||
write_server_ini osm_data_area_name
|
write_server_ini osm_data_area_name
|
||||||
system "../osrm-routed"
|
system "../osrm-routed"
|
||||||
end
|
end
|
||||||
@ -141,7 +143,7 @@ end
|
|||||||
|
|
||||||
desc "Launch the routing server in the background. Use rake:down to stop it."
|
desc "Launch the routing server in the background. Use rake:down to stop it."
|
||||||
task :up => :setup do
|
task :up => :setup do
|
||||||
Dir.chdir SANDBOX do
|
Dir.chdir DATA_FOLDER do
|
||||||
abort("Already up.") if up?
|
abort("Already up.") if up?
|
||||||
write_server_ini osm_data_area_name
|
write_server_ini osm_data_area_name
|
||||||
pipe = IO.popen('../osrm-routed 1>>osrm-routed.log 2>>osrm-routed.log')
|
pipe = IO.popen('../osrm-routed 1>>osrm-routed.log 2>>osrm-routed.log')
|
||||||
@ -160,8 +162,11 @@ end
|
|||||||
desc "Stop the routing server."
|
desc "Stop the routing server."
|
||||||
task :down do
|
task :down do
|
||||||
pid = find_pid 'osrm-routed'
|
pid = find_pid 'osrm-routed'
|
||||||
abort("Already down.") unless pid
|
if pid
|
||||||
Process.kill 'TERM', pid
|
Process.kill 'TERM', pid
|
||||||
|
else
|
||||||
|
puts "Already down."
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Kill all osrm-extract, osrm-prepare and osrm-routed processes."
|
desc "Kill all osrm-extract, osrm-prepare and osrm-routed processes."
|
||||||
@ -180,3 +185,7 @@ task :pid do
|
|||||||
puts "#{pid}\t#{state}"
|
puts "#{pid}\t#{state}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
desc "Stop, reprocess and restart."
|
||||||
|
task :update => [:down,:process,:up] do
|
||||||
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user