This commit is contained in:
@@ -75,8 +75,21 @@ pub fn root_shell() -> Result<()> {
|
|||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
pub fn root_shell() -> Result<()> {
|
pub fn root_shell() -> Result<()> {
|
||||||
// we are root now, this was set in kernel!
|
// we are root now, this was set in kernel!
|
||||||
let args: Vec<String> = std::env::args().collect();
|
let env_args: Vec<String> = std::env::args().collect();
|
||||||
let program = args[0].clone();
|
let program = env_args[0].clone();
|
||||||
|
let args = env_args
|
||||||
|
.iter()
|
||||||
|
.position(|arg| arg == "-c")
|
||||||
|
.map(|i| {
|
||||||
|
let rest = env_args[i + 1..].to_vec();
|
||||||
|
let mut new_args = env_args[..i].to_vec();
|
||||||
|
new_args.push("-c".to_string());
|
||||||
|
if !rest.is_empty() {
|
||||||
|
new_args.push(rest.join(" "));
|
||||||
|
}
|
||||||
|
new_args
|
||||||
|
})
|
||||||
|
.unwrap_or_else(|| env_args.clone());
|
||||||
|
|
||||||
let mut opts = Options::new();
|
let mut opts = Options::new();
|
||||||
opts.optopt(
|
opts.optopt(
|
||||||
|
|||||||
Reference in New Issue
Block a user