#dmg #file #mount #osx

bin+lib dmg

Simple attaching/detaching of macOS disk images

3 releases

0.1.2 Dec 27, 2022
0.1.1 Jun 22, 2017
0.1.0 Jun 22, 2017

#22 in macOS and iOS APIs

Download history 292/week @ 2022-10-11 422/week @ 2022-10-18 267/week @ 2022-10-25 253/week @ 2022-11-01 192/week @ 2022-11-08 285/week @ 2022-11-15 121/week @ 2022-11-22 235/week @ 2022-11-29 182/week @ 2022-12-06 308/week @ 2022-12-13 163/week @ 2022-12-20 298/week @ 2022-12-27 178/week @ 2023-01-03 281/week @ 2023-01-10 285/week @ 2023-01-17 288/week @ 2023-01-24

1,077 downloads per month
Used in 4 crates (2 directly)

MIT/Apache

13KB
222 lines

dmg

Simple attaching/detaching of macOS disk images.

Build Status crates.io Docs

Example

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

Testing

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

License

Licensed under either of

at your option.

Dependencies

~2.5MB
~49K SLoC