@@ -21,7 +21,11 @@ struct Cli {
2121 /// Lock file to use for dependencies (defaults to recent).
2222 #[ arg( long, global = true , value_enum) ]
2323 lock_file : Option < LockFile > ,
24-
24+
25+ /// Filter to specific package (can be specified multiple times).
26+ #[ arg( short = 'p' , long = "package" , global = true ) ]
27+ packages : Vec < String > ,
28+
2529 #[ command( subcommand) ]
2630 command : Commands ,
2731}
@@ -64,31 +68,31 @@ fn main() {
6468
6569 match cli. command {
6670 Commands :: Lint => {
67- if let Err ( e) = lint:: run ( & sh) {
71+ if let Err ( e) = lint:: run ( & sh, & cli . packages ) {
6872 eprintln ! ( "Error running lint task: {}" , e) ;
6973 process:: exit ( 1 ) ;
7074 }
7175 }
7276 Commands :: Docs => {
73- if let Err ( e) = docs:: build_docs_stable ( & sh) {
77+ if let Err ( e) = docs:: build_docs_stable ( & sh, & cli . packages ) {
7478 eprintln ! ( "Error building docs: {}" , e) ;
7579 process:: exit ( 1 ) ;
7680 }
7781 }
7882 Commands :: Docsrs => {
79- if let Err ( e) = docs:: build_docs_nightly ( & sh) {
83+ if let Err ( e) = docs:: build_docs_nightly ( & sh, & cli . packages ) {
8084 eprintln ! ( "Error building docs.rs docs: {}" , e) ;
8185 process:: exit ( 1 ) ;
8286 }
8387 }
8488 Commands :: Bench => {
85- if let Err ( e) = bench:: run ( & sh) {
89+ if let Err ( e) = bench:: run ( & sh, & cli . packages ) {
8690 eprintln ! ( "Error running bench tests: {}" , e) ;
8791 process:: exit ( 1 ) ;
8892 }
8993 }
9094 Commands :: Test { toolchain } => {
91- if let Err ( e) = test:: run ( & sh, toolchain) {
95+ if let Err ( e) = test:: run ( & sh, toolchain, & cli . packages ) {
9296 eprintln ! ( "Error running tests: {}" , e) ;
9397 process:: exit ( 1 ) ;
9498 }
0 commit comments