From 1d1fe7b0b68719263ea31504e74c2b0f5ad2e053 Mon Sep 17 00:00:00 2001 From: Zhai Can Date: Fri, 10 Nov 2023 20:13:03 +0800 Subject: add command to generate Rust-part CLI completions --- rust-src/src/cmd_mount.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'rust-src/src/cmd_mount.rs') diff --git a/rust-src/src/cmd_mount.rs b/rust-src/src/cmd_mount.rs index f7c6d920..9d58cb3e 100644 --- a/rust-src/src/cmd_mount.rs +++ b/rust-src/src/cmd_mount.rs @@ -1,10 +1,10 @@ use atty::Stream; use bch_bindgen::{bcachefs, bcachefs::bch_sb_handle}; use log::{info, debug, error, LevelFilter}; -use clap::Parser; +use clap::{Parser, Subcommand}; use uuid::Uuid; use std::path::PathBuf; -use crate::key; +use crate::{key, transform_c_args}; use crate::key::KeyLoc; use crate::logger::SimpleLogger; use std::ffi::{CStr, CString, OsStr, c_int, c_char, c_void}; @@ -129,7 +129,7 @@ fn get_devices_by_uuid(uuid: Uuid) -> anyhow::Result anyhow::Result<()> { } #[no_mangle] +#[allow(clippy::not_unsafe_ptr_arg_deref)] pub extern "C" fn cmd_mount(argc: c_int, argv: *const *const c_char) -> c_int { - let argv: Vec<_> = (0..argc) - .map(|i| unsafe { CStr::from_ptr(*argv.add(i as usize)) }) - .map(|i| OsStr::from_bytes(i.to_bytes())) - .collect(); - + transform_c_args!(argv, argc, argv); let opt = Cli::parse_from(argv); log::set_boxed_logger(Box::new(SimpleLogger)).unwrap(); -- cgit v1.2.3