about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorRyan Mehri <ryan.mehri1@gmail.com>2024-12-16 19:07:43 -0700
committerRyan Mehri <ryan.mehri1@gmail.com>2024-12-17 14:13:05 -0700
commitbc1737b279dd8382e4f613f36e74552ee76a3c01 (patch)
tree66111dd3a562bc17e50f39a453ac2d07da2a4565 /src/bootstrap
parent13b77c687c0f5ad06a579af6d0787fe562747501 (diff)
downloadrust-bc1737b279dd8382e4f613f36e74552ee76a3c01.tar.gz
rust-bc1737b279dd8382e4f613f36e74552ee76a3c01.zip
Generate shell completions for x as well
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/src/core/build_steps/run.rs6
-rw-r--r--src/bootstrap/src/core/config/flags.rs9
2 files changed, 13 insertions, 2 deletions
diff --git a/src/bootstrap/src/core/build_steps/run.rs b/src/bootstrap/src/core/build_steps/run.rs
index c76504761be..54aad088552 100644
--- a/src/bootstrap/src/core/build_steps/run.rs
+++ b/src/bootstrap/src/core/build_steps/run.rs
@@ -270,7 +270,11 @@ impl Step for GenerateCompletions {
             (Bash, builder.src.join("src/etc/completions/x.py.sh")),
             (Zsh, builder.src.join("src/etc/completions/x.py.zsh")),
             (Fish, builder.src.join("src/etc/completions/x.py.fish")),
-            (PowerShell, builder.src.join("src/etc/completions/x.py.ps1"))
+            (PowerShell, builder.src.join("src/etc/completions/x.py.ps1")),
+            (Bash, builder.src.join("src/etc/completions/x.sh")),
+            (Zsh, builder.src.join("src/etc/completions/x.zsh")),
+            (Fish, builder.src.join("src/etc/completions/x.fish")),
+            (PowerShell, builder.src.join("src/etc/completions/x.ps1"))
         );
     }
 
diff --git a/src/bootstrap/src/core/config/flags.rs b/src/bootstrap/src/core/config/flags.rs
index bfeb811508c..00bcbe9f86d 100644
--- a/src/bootstrap/src/core/config/flags.rs
+++ b/src/bootstrap/src/core/config/flags.rs
@@ -633,7 +633,14 @@ pub fn get_completion<G: clap_complete::Generator>(shell: G, path: &Path) -> Opt
         })
     };
     let mut buf = Vec::new();
-    clap_complete::generate(shell, &mut cmd, "x.py", &mut buf);
+    let (bin_name, _) = path
+        .file_name()
+        .expect("path should be a regular file")
+        .to_str()
+        .expect("file name should be UTF-8")
+        .rsplit_once('.')
+        .expect("file name should have an extension");
+    clap_complete::generate(shell, &mut cmd, bin_name, &mut buf);
     if buf == current.as_bytes() {
         return None;
     }