An Automator workflow that mounts a disk image on when I drag and drop the dmg file onto it is easy:
Instead of dragging and dropping the dmg file I want to double click the created workflow and have it mount a specific file. I've tried using "Set Value of Variable" to the path of the dmg, "Open Finder Items", and "Get Selected Folder Items", nothing works.
I can do it with the command line as:
hdiutil mount disk_image_name.dmg
I've also tried with the Applescript:
on run {input, parameters}
tell application "DiskImageMounter"
open "path/disk_image_name.dmg"
end tell
end run
But after mounting the disk image as expected, Automator freezes for about 15 seconds and gives the below Syntax Error.
The reason I want to avoid using hdituil is the disk images are encrypted. When using the Automator mount tool the password is done in Apple's dialog box. Using hdiutil I end up passing the password as stdin.
printf '%s\0' "$PASSPHRASE" | hdiutil attach $LOCATION -stdinpass
Best Answer
I would use
hdiutil ...
instead of other methods but with an image protected by a certificate instead of a password. This is similar as to building an encrypted image with a password and a recovery key (based on a cert) - without password though:Create a temporary cert folder and cd into it:
Create a root CA if you don't have one already:
Fill in all proposed fields.
Create a password protected certificate signing request:
Fill in all proposed fields.
Create the signed certificate in PEM format
Convert the signed certificate to DER format
Bundle the PEM certificate and private key into a PKCS#12 package
Use
hdiutil
with the -certificate options to create an encrypted volume (example only):Create a new Automator workflow, adding a Run Shell Script action with the following command:
(please apply paths as needed)
This simple Automator workflow works as "workflow" and "app".