2023-07-31 14:12:45 +02:00
|
|
|
pub fn handle_args() {
|
|
|
|
|
let args = std::env::args().collect::<Vec<String>>();
|
|
|
|
|
if args.len() > 1 {
|
|
|
|
|
let shell = &args[1];
|
|
|
|
|
let binary_path = &args[0];
|
|
|
|
|
let last_command;
|
|
|
|
|
let alias;
|
|
|
|
|
|
|
|
|
|
match shell.as_str() {
|
|
|
|
|
"bash" => {
|
|
|
|
|
last_command = "$(history 2)";
|
|
|
|
|
alias = "$(alias)"
|
|
|
|
|
}
|
|
|
|
|
"zsh" => {
|
|
|
|
|
last_command = "$(fc -ln -1)";
|
|
|
|
|
alias = "$(alias)"
|
|
|
|
|
}
|
|
|
|
|
"fish" => {
|
|
|
|
|
last_command = "$(history | head -n 1)";
|
|
|
|
|
alias = "$(alias)";
|
|
|
|
|
}
|
2023-07-31 18:46:35 +02:00
|
|
|
"nu" | "nush" | "nushell" => {
|
2023-07-31 15:06:30 +02:00
|
|
|
last_command = "(history | last).command";
|
|
|
|
|
alias = "\"\"";
|
2023-07-31 18:46:35 +02:00
|
|
|
println!(
|
|
|
|
|
"with-env {{ _PR_LAST_COMMAND : {},\
|
2023-07-31 15:06:30 +02:00
|
|
|
_PR_ALIAS : {},\
|
2023-07-31 18:46:35 +02:00
|
|
|
_PR_SHELL : nu }} \
|
|
|
|
|
{{ {} }}",
|
|
|
|
|
last_command, alias, binary_path
|
|
|
|
|
);
|
2023-07-31 15:06:30 +02:00
|
|
|
std::process::exit(0);
|
|
|
|
|
}
|
2023-07-31 14:12:45 +02:00
|
|
|
_ => {
|
|
|
|
|
println!("Unknown shell: {}", shell);
|
|
|
|
|
std::process::exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
println!(
|
|
|
|
|
"\
|
|
|
|
|
_PR_LAST_COMMAND=\"{}\" \
|
|
|
|
|
_PR_ALIAS=\"{}\" \
|
|
|
|
|
_PR_SHELL=\"{}\" \
|
|
|
|
|
\"{}\"",
|
|
|
|
|
last_command, alias, shell, binary_path
|
|
|
|
|
);
|
|
|
|
|
std::process::exit(0);
|
|
|
|
|
}
|
|
|
|
|
}
|