File tree Expand file tree Collapse file tree 3 files changed +18
-8
lines changed Expand file tree Collapse file tree 3 files changed +18
-8
lines changed Original file line number Diff line number Diff line change @@ -6,11 +6,11 @@ description = "Convert OpenStreetMap data into routing friendly CSV"
6
6
homepage = " https://github.com/Tristramg/osm4routing2"
7
7
readme = " readme.md"
8
8
license = " MIT"
9
- license-file = " LICENCE.md"
10
9
11
10
[dependencies ]
12
11
osmpbfreader = " 0.3"
13
12
csv = " 0.14.7"
13
+ docopt = " 0.6.86"
14
14
15
15
[lib ]
16
16
name = " osm4routing"
Original file line number Diff line number Diff line change 1
1
extern crate osm4routing;
2
+ extern crate docopt;
3
+ use docopt:: Docopt ;
2
4
3
5
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
+ }
6
15
}
Original file line number Diff line number Diff line change @@ -72,9 +72,9 @@ impl Reader {
72
72
result
73
73
}
74
74
75
- fn read ( & mut self , filename : & str ) {
75
+ fn read ( & mut self , filename : & str ) -> Result < ( ) , String > {
76
76
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 ( ) ) ) ;
78
78
let mut pbf = osmpbfreader:: OsmPbfReader :: new ( r) ;
79
79
for obj in pbf. iter ( ) {
80
80
match obj {
@@ -104,6 +104,7 @@ impl Reader {
104
104
osmpbfreader:: OsmObj :: Relation ( _) => { }
105
105
}
106
106
}
107
+ Ok ( ( ) )
107
108
}
108
109
109
110
@@ -122,11 +123,11 @@ impl Reader {
122
123
}
123
124
124
125
// 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 > {
126
127
let mut r = Reader :: new ( ) ;
127
- r. read ( filename) ;
128
+ try! ( r. read ( filename) ) ;
128
129
r. count_nodes_uses ( ) ;
129
- return ( r. nodes ( ) , r. edges ( ) ) ;
130
+ Ok ( ( r. nodes ( ) , r. edges ( ) ) )
130
131
}
131
132
132
133
#[ test]
You can’t perform that action at this time.
0 commit comments