diff options
author | Thomas Bertschinger <tahbertschinger@gmail.com> | 2024-01-15 23:41:00 -0700 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-01-16 01:46:41 -0500 |
commit | 0a284fc4ffcbb46f0a4b921415ef12a9c75fa05c (patch) | |
tree | 22aa82b7448833713ca975eb3c241f607742fc78 /rust-src/src/cmd_main.rs | |
parent | 249bf7b9d446092e1b744c366b7e8c4563a437f0 (diff) |
convert main() from C to Rust
This moves the main() function from C to Rust. It also updates the name
of the Rust package from "bcachefs-rust" to "bcachefs-tools".
Signed-off-by: Thomas Bertschinger <tahbertschinger@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'rust-src/src/cmd_main.rs')
-rw-r--r-- | rust-src/src/cmd_main.rs | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/rust-src/src/cmd_main.rs b/rust-src/src/cmd_main.rs deleted file mode 100644 index baedc851..00000000 --- a/rust-src/src/cmd_main.rs +++ /dev/null @@ -1,34 +0,0 @@ -use log::{error, LevelFilter}; -use std::ffi::{CStr, c_int, c_char}; -use crate::transform_c_args; -use crate::logger::SimpleLogger; -use crate::cmd_completions::cmd_completions; -use crate::cmd_list::cmd_list; -use crate::cmd_mount::cmd_mount; - -#[no_mangle] -pub extern "C" fn rust_main(argc: c_int, argv: *const *const c_char, cmd: *const c_char) -> c_int { - transform_c_args!(argv, argc, argv); - - log::set_boxed_logger(Box::new(SimpleLogger)).unwrap(); - log::set_max_level(LevelFilter::Warn); - - let cmd: &CStr = unsafe { CStr::from_ptr(cmd) }; - let cmd = match cmd.to_str() { - Ok(c) => c, - Err(e) => { - error!("could not parse command: {}", e); - return 1; - } - }; - - match cmd { - "completions" => cmd_completions(argv), - "list" => cmd_list(argv), - "mount" => cmd_mount(argv), - _ => { - error!("unknown command: {}", cmd); - 1 - } - } -} |