Skip to content

Commit c437ca6

Browse files
committed
Fix "jit" subcommand not tracking current program
1 parent 75781bb commit c437ca6

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

cobalt-cli/src/main.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,10 @@ enum Cli {
150150
/// don't search default directories for libraries
151151
#[arg(long)]
152152
no_default_link: bool,
153+
/// argv[0] to pass to program
154+
#[arg(short, long)]
155+
this: Option<String>,
156+
/// arguments to pass to program
153157
#[arg(last = true)]
154158
args: Vec<String>
155159
},
@@ -470,12 +474,13 @@ fn driver() -> anyhow::Result<()> {
470474
}
471475

472476
},
473-
Cli::Jit {input, linked, mut link_dirs, headers, profile, continue_if_err, no_default_link, mut args} => {
477+
Cli::Jit {input, linked, mut link_dirs, headers, profile, continue_if_err, no_default_link, this, mut args} => {
474478
if !no_default_link {
475479
if let Some(pwd) = std::env::current_dir().ok().and_then(|pwd| pwd.to_str().map(String::from)) {link_dirs.insert(0, pwd);}
476480
if let Ok(home) = std::env::var("HOME") {link_dirs.extend_from_slice(&[format!("{home}/.cobalt/packages"), format!("{home}/.local/lib/cobalt"), "/usr/local/lib/cobalt/packages".to_string(), "/usr/lib/cobalt/packages".to_string(), "/lib/cobalt/packages".to_string(), "/usr/local/lib".to_string(), "/usr/lib".to_string(), "/lib".to_string()]);}
477481
else {link_dirs.extend(["/usr/local/lib/cobalt/packages", "/usr/lib/cobalt/packages", "/lib/cobalt/packages", "/usr/local/lib", "/usr/lib", "/lib"].into_iter().map(String::from));}
478482
}
483+
args.insert(0, this.unwrap_or_else(|| std::env::args().next().unwrap_or_else(|| "<error>".to_string()) + " jit"));
479484
let (input, code) = match input.as_str() {
480485
"-" => {
481486
let mut s = String::new();

0 commit comments

Comments
 (0)