Simple attaching/detaching of macOS disk images.
Attach a disk image until dropped:
use dmg::Attach;
let info = Attach::new("Test.dmg").with().expect("could not attach");
println!("Mounted at {:?}", info.mount_point);
// Detched when 'info' dropped
If you prefer to handle detaching yourself simply use attach()
:
use dmg::Attach;
let info = Attach::new("Test.dmg").attach().expect("could not attach");
println!("Device node {:?}", info.device);
info.detach().expect("could not detach"); // There is also .force_detach()
If you know the device node or mount point, you can detach it like this too:
use dmg;
dmg::detach("/Volumes/Test", false).expect("could not detach"); // Do not force detach
For more examples see src/tests.rs
and src/bin/demo.rs
To create Test.dmg
run:
./create_dmg.sh
This will create a read-write .dmg file containg a single file called SAMPLE
.
hdiutil
doesn not like attaching and detaching the same file concurrently, so test using:
cargo test -- --test-threads 1
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.