diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-10-03 11:49:52 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2022-10-09 11:18:53 +0000 |
commit | 4a9248b240a77b255ab6afbcf456dd03300402ad (patch) | |
tree | d3f9461a4641117a73005f9a47b2f3d9a51a2be4 | |
parent | 28d8c338db4e92650621797bf3e59fe6136959db (diff) | |
download | spectrum-4a9248b240a77b255ab6afbcf456dd03300402ad.tar spectrum-4a9248b240a77b255ab6afbcf456dd03300402ad.tar.gz spectrum-4a9248b240a77b255ab6afbcf456dd03300402ad.tar.bz2 spectrum-4a9248b240a77b255ab6afbcf456dd03300402ad.tar.lz spectrum-4a9248b240a77b255ab6afbcf456dd03300402ad.tar.xz spectrum-4a9248b240a77b255ab6afbcf456dd03300402ad.tar.zst spectrum-4a9248b240a77b255ab6afbcf456dd03300402ad.zip |
host/start-vm: use argv0 base name for errors
Otherwise, if start-vm was run by path, it would print the whole path used to invoke it as an error message prefix. Signed-off-by: Alyssa Ross <hi@alyssa.is>
-rw-r--r-- | host/start-vm/start-vm.rs | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/host/start-vm/start-vm.rs b/host/start-vm/start-vm.rs index 11715f1..2ea3dbf 100644 --- a/host/start-vm/start-vm.rs +++ b/host/start-vm/start-vm.rs @@ -4,15 +4,27 @@ mod ch; mod net; -use std::env::{args, current_dir}; -use std::ffi::{CString, OsString}; +use std::borrow::Cow; +use std::env::{args_os, current_dir}; +use std::ffi::{CString, OsStr, OsString}; use std::io::{self, ErrorKind}; use std::os::unix::prelude::*; -use std::path::PathBuf; +use std::path::{Path, PathBuf}; use std::process::{exit, Command}; use net::{format_mac, net_setup, NetConfig}; +fn prog_name() -> String { + args_os() + .next() + .as_ref() + .map(Path::new) + .and_then(Path::file_name) + .map(OsStr::to_string_lossy) + .unwrap_or(Cow::Borrowed("start-vm")) + .into_owned() +} + fn vm_command(dir: PathBuf) -> Result<Command, String> { let dir = dir.into_os_string().into_vec(); let dir = PathBuf::from(OsString::from_vec(dir)); @@ -106,12 +118,7 @@ fn run() -> String { } fn main() { - let argv0_option = args().next(); - let argv0 = argv0_option - .as_ref() - .map(String::as_str) - .unwrap_or("start-vm"); - eprintln!("{}: {}", argv0, run()); + eprintln!("{}: {}", prog_name(), run()); exit(1); } |