@@ -63,15 +63,17 @@ pub fn execute(args: &ArgMatches) -> Result<()> {
63
63
let address = format ! ( "{}:{}" , hostname, port) ;
64
64
65
65
let livereload_url = format ! ( "ws://{}/{}" , address, LIVE_RELOAD_ENDPOINT ) ;
66
- book. config
67
- . set ( "output.html.livereload-url" , & livereload_url) ?;
68
-
69
- if let Some ( dest_dir) = args. value_of ( "dest-dir" ) {
70
- book. config . build . build_dir = dest_dir. into ( ) ;
71
- }
72
- // Override site-url for local serving of the 404 file
73
- book. config . set ( "output.html.site-url" , "/" ) ?;
74
-
66
+ let update_config = |book : & mut MDBook | {
67
+ book. config
68
+ . set ( "output.html.livereload-url" , & livereload_url)
69
+ . expect ( "livereload-url update failed" ) ;
70
+ if let Some ( dest_dir) = args. value_of ( "dest-dir" ) {
71
+ book. config . build . build_dir = dest_dir. into ( ) ;
72
+ }
73
+ // Override site-url for local serving of the 404 file
74
+ book. config . set ( "output.html.site-url" , "/" ) . unwrap ( ) ;
75
+ } ;
76
+ update_config ( & mut book) ;
75
77
book. build ( ) ?;
76
78
77
79
let sockaddr: SocketAddr = address
@@ -108,13 +110,10 @@ pub fn execute(args: &ArgMatches) -> Result<()> {
108
110
info ! ( "Building book..." ) ;
109
111
110
112
// FIXME: This area is really ugly because we need to re-set livereload :(
111
- let result = MDBook :: load ( & book_dir)
112
- . and_then ( |mut b| {
113
- b. config
114
- . set ( "output.html.livereload-url" , & livereload_url) ?;
115
- Ok ( b)
116
- } )
117
- . and_then ( |b| b. build ( ) ) ;
113
+ let result = MDBook :: load ( & book_dir) . and_then ( |mut b| {
114
+ update_config ( & mut b) ;
115
+ b. build ( )
116
+ } ) ;
118
117
119
118
if let Err ( e) = result {
120
119
error ! ( "Unable to load the book" ) ;
0 commit comments