about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorJoshua Nelson <jnelson@cloudflare.com>2022-05-02 23:25:08 -0500
committerJoshua Nelson <jnelson@cloudflare.com>2022-05-02 23:46:31 -0500
commit3a800bf5c75fc9889178e401b0ab5fab87deb00d (patch)
tree4f6a55b348ec3dce2dedda9847b724ab388b3249 /src/bootstrap
parentc110cfa161aab391bd37c16a95b8330bfc7e54ce (diff)
downloadrust-3a800bf5c75fc9889178e401b0ab5fab87deb00d.tar.gz
rust-3a800bf5c75fc9889178e401b0ab5fab87deb00d.zip
[bootstrap] Give a better error when trying to run a path with no registered step
Before:
```
thread 'main' panicked at 'error: no rules matched invalid', src/bootstrap/builder.rs:287:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```

After:
```
error: no `check` rules matched 'invalid'
help: run `x.py check --help --verbose` to show a list of available paths
note: if you are adding a new Step to bootstrap itself, make sure you register it with `describe!`
```
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/builder.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
index edfe31319e8..c399b004ead 100644
--- a/src/bootstrap/builder.rs
+++ b/src/bootstrap/builder.rs
@@ -284,7 +284,19 @@ impl StepDescription {
             }
 
             if !attempted_run {
-                panic!("error: no rules matched {}", path.display());
+                eprintln!(
+                    "error: no `{}` rules matched '{}'",
+                    builder.kind.as_str(),
+                    path.display()
+                );
+                eprintln!(
+                    "help: run `x.py {} --help --verbose` to show a list of available paths",
+                    builder.kind.as_str()
+                );
+                eprintln!(
+                    "note: if you are adding a new Step to bootstrap itself, make sure you register it with `describe!`"
+                );
+                std::process::exit(1);
             }
         }
     }