At Merlin’s request…
Rough draft, first attempt, whatever, it doesn’t work quite yet for me but I’ll post it and see if anybody else can help.
Just create a trigger to run the shell script (once it works correctly, it’s close though) and you can eject all with a hot key, no extra apps needed.
Update: I think I got it working, just save this, make it executable with chmod +x and then create a trigger in Quicksilver to run the shell script. (You will need the appropriate Quicksilver plugins. I’ll make a tutorial when I get home probably.)
Bugs:
Doesn’t work if volume has spaces.Doesn’t properly eject disk images, maybe others.- Uses disktool which is deprecated. If I had to I could just use mount but this works.
#!/bin/bash
for i in $( disktool -l | grep "Mountpoint = '/" | sed s/^.*Mountpoint = '// | sed s/',.*// | sed 's/ //g' )
do
case "${i}" in
# Add any volumes you might want to skip as alternate case, for example the root volume:
/)
;;
/Users/nnutter)
;;
# This case will take care of all the others, the drives you do want to eject:
*)
diskutil eject "`echo $i | sed 's// /g'`"
;;
esac
done