@@ -12,6 +12,7 @@ use std::convert::AsRef;
12
12
use std:: fs:: { self , File } ;
13
13
use std:: io:: { self , Write } ;
14
14
use std:: path:: { Path , PathBuf } ;
15
+ use eyre:: { eyre, WrapErr } ;
15
16
use rayon:: prelude:: * ;
16
17
17
18
struct Generator < ' a > {
@@ -87,33 +88,38 @@ impl<'a> Generator<'a> {
87
88
for blog in & self . blogs {
88
89
self . render_blog ( blog) ?;
89
90
}
90
- self . compile_sass ( "app" ) ;
91
- self . compile_sass ( "fonts" ) ;
92
- self . concat_vendor_css ( vec ! [ "skeleton" , "tachyons" ] ) ;
91
+ self . compile_sass ( "app" ) ? ;
92
+ self . compile_sass ( "fonts" ) ? ;
93
+ self . concat_vendor_css ( vec ! [ "skeleton" , "tachyons" ] ) ? ;
93
94
self . copy_static_files ( ) ?;
94
95
Ok ( ( ) )
95
96
}
96
97
97
- fn compile_sass ( & self , filename : & str ) {
98
+ fn compile_sass ( & self , filename : & str ) -> eyre :: Result < ( ) > {
98
99
let scss_file = format ! ( "./src/styles/{}.scss" , filename) ;
99
100
let css_file = format ! ( "./static/styles/{}.css" , filename) ;
100
101
101
102
let css = compile_file ( & scss_file, Options :: default ( ) )
102
- . expect ( & format ! ( "couldn't compile sass: {}" , & scss_file) ) ;
103
+ . map_err ( |error| eyre ! ( error) )
104
+ . wrap_err_with ( || format ! ( "couldn't compile sass: {}" , & scss_file) ) ?;
103
105
let mut file =
104
- File :: create ( & css_file) . expect ( & format ! ( "couldn't make css file: {}" , & css_file) ) ;
106
+ File :: create ( & css_file) . wrap_err_with ( || format ! ( "couldn't make css file: {}" , & css_file) ) ? ;
105
107
file. write_all ( & css. into_bytes ( ) )
106
- . expect ( & format ! ( "couldn't write css file: {}" , & css_file) ) ;
108
+ . wrap_err_with ( || format ! ( "couldn't write css file: {}" , & css_file) ) ?;
109
+
110
+ Ok ( ( ) )
107
111
}
108
112
109
- fn concat_vendor_css ( & self , files : Vec < & str > ) {
113
+ fn concat_vendor_css ( & self , files : Vec < & str > ) -> eyre :: Result < ( ) > {
110
114
let mut concatted = String :: new ( ) ;
111
115
for filestem in files {
112
116
let vendor_path = format ! ( "./static/styles/{}.css" , filestem) ;
113
- let contents = fs:: read_to_string ( vendor_path) . expect ( "couldn't read vendor css" ) ;
117
+ let contents = fs:: read_to_string ( vendor_path) . wrap_err ( "couldn't read vendor css" ) ? ;
114
118
concatted. push_str ( & contents) ;
115
119
}
116
- fs:: write ( "./static/styles/vendor.css" , & concatted) . expect ( "couldn't write vendor css" ) ;
120
+ fs:: write ( "./static/styles/vendor.css" , & concatted) . wrap_err ( "couldn't write vendor css" ) ?;
121
+
122
+ Ok ( ( ) )
117
123
}
118
124
119
125
fn render_blog ( & self , blog : & Blog ) -> eyre:: Result < ( ) > {
0 commit comments