1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pub fn modprobe(moduleName: &str) -> Result<(), ModProbeError>
{
assert!(!moduleName.starts_with("-"), "moduleName '{}' starts with a hyphen. This confuses some mobprobe implementations (and some don't support -- parsing it seems)", moduleName);
assertEffectiveUserIsRoot(&format!("modprobe of '{}'", moduleName));
let exitCode = try!(newSafeCommand("modprobe", Stdio::null(), Stdio::null(), Stdio::null()).arg("-s").arg("-b").arg(moduleName).status());
match exitCode.code()
{
None => Err(ModProbeError::SignalTerminatedExitCode(moduleName.to_owned())),
Some(exitCode) => match exitCode
{
0 => Ok(()),
_ => Err(ModProbeError::NonZeroExitCode(exitCode, moduleName.to_owned())),
}
}
}