Skip to content

Commit f4bb7ad

Browse files
committed
Add command line parameter
1 parent 6746d00 commit f4bb7ad

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ description = "Convert OpenStreetMap data into routing friendly CSV"
66
homepage = "https://github.com/Tristramg/osm4routing2"
77
readme = "readme.md"
88
license = "MIT"
9-
license-file = "LICENCE.md"
109

1110
[dependencies]
1211
osmpbfreader = "0.3"
1312
csv = "0.14.7"
13+
docopt = "0.6.86"
1414

1515
[lib]
1616
name = "osm4routing"

src/main.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
extern crate osm4routing;
2+
extern crate docopt;
3+
use docopt::Docopt;
24

35
fn main() {
4-
let (nodes, edges) = osm4routing::reader::read("idf.osm.pbf");
5-
osm4routing::writers::csv(nodes, edges);
6+
7+
const USAGE: &'static str = "
8+
Usage: osm4routing <source.osm.pbf>";
9+
let args = Docopt::new(USAGE).unwrap().parse().unwrap_or_else(|e| e.exit());
10+
let filename = args.get_str("<source.osm.pbf>");
11+
match osm4routing::reader::read(filename) {
12+
Ok((nodes, edges)) => osm4routing::writers::csv(nodes, edges),
13+
Err(error) => println!("Error: {}", error),
14+
}
615
}

src/osm4routing/reader.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ impl Reader {
7272
result
7373
}
7474

75-
fn read(&mut self, filename: &str) {
75+
fn read(&mut self, filename: &str) -> Result<(), String> {
7676
let path = std::path::Path::new(filename);
77-
let r = std::fs::File::open(&path).unwrap();
77+
let r = try!(std::fs::File::open(&path).map_err(|e| e.to_string()));
7878
let mut pbf = osmpbfreader::OsmPbfReader::new(r);
7979
for obj in pbf.iter() {
8080
match obj {
@@ -104,6 +104,7 @@ impl Reader {
104104
osmpbfreader::OsmObj::Relation(_) => {}
105105
}
106106
}
107+
Ok(())
107108
}
108109

109110

@@ -122,11 +123,11 @@ impl Reader {
122123
}
123124

124125
// Read all the nodes and ways of the osm.pbf file
125-
pub fn read(filename: &str) -> (Vec<Node>, Vec<Edge>) {
126+
pub fn read(filename: &str) -> Result<(Vec<Node>, Vec<Edge>), String> {
126127
let mut r = Reader::new();
127-
r.read(filename);
128+
try!(r.read(filename));
128129
r.count_nodes_uses();
129-
return (r.nodes(), r.edges());
130+
Ok((r.nodes(), r.edges()))
130131
}
131132

132133
#[test]

0 commit comments

Comments
 (0)