@@ -20,8 +20,8 @@ pub(crate) struct Config {
2020impl Config {
2121 pub ( crate ) fn from_args ( args : Vec < String > ) -> Self {
2222 let mut opts = Options :: new ( ) ;
23- opts. reqopt ( "" , "nodejs" , "absolute path of nodejs" , "PATH" )
24- . reqopt ( "" , "npm" , "absolute path of npm" , "PATH" )
23+ opts. optopt ( "" , "nodejs" , "absolute path of nodejs" , "PATH" )
24+ . optopt ( "" , "npm" , "absolute path of npm" , "PATH" )
2525 . reqopt ( "" , "out-dir" , "output path of doc compilation" , "PATH" )
2626 . reqopt ( "" , "rust-src" , "root source of the rust source" , "PATH" )
2727 . reqopt (
@@ -47,9 +47,18 @@ impl Config {
4747 Err ( f) => panic ! ( "{:?}" , f) ,
4848 } ;
4949
50+ let Some ( nodejs) = matches. opt_str ( "nodejs" ) . map ( PathBuf :: from) else {
51+ eprintln ! ( "`nodejs` was not provided. If not available, please install it" ) ;
52+ std:: process:: exit ( 1 ) ;
53+ } ;
54+ let Some ( npm) = matches. opt_str ( "npm" ) . map ( PathBuf :: from) else {
55+ eprintln ! ( "`npm` was not provided. If not available, please install it" ) ;
56+ std:: process:: exit ( 1 ) ;
57+ } ;
58+
5059 Self {
51- nodejs : matches . opt_str ( "nodejs" ) . map ( PathBuf :: from ) . expect ( "nodejs isn't available" ) ,
52- npm : matches . opt_str ( "npm" ) . map ( PathBuf :: from ) . expect ( "npm isn't available" ) ,
60+ nodejs,
61+ npm,
5362 rust_src : matches. opt_str ( "rust-src" ) . map ( PathBuf :: from) . unwrap ( ) ,
5463 out_dir : matches. opt_str ( "out-dir" ) . map ( PathBuf :: from) . unwrap ( ) ,
5564 initial_cargo : matches. opt_str ( "initial-cargo" ) . map ( PathBuf :: from) . unwrap ( ) ,
0 commit comments