Ik heb een paar jaar geleden een Scriptje gemaakt die .dmg en beveiligde .dmg sluit. (Script voldoet voor mij prima en is nog steeds in gebruik)
Inderdaad dezelfde reden, ik wil mijn beveiligde dmg automatisch sluiten, ( na 5 minuten )
De geopende files uit de dmg worden niet gesloten. is een file uit de dmg in gebruik dan sluit de dmg niet, ( iets om rekening mee te houden )
Soms wil je nog niet dat de dmg sluit, dan kan kies je voor "open",
Je kan eenvoudig de interval groter of kleiner maken, in het voorbeeld staat interval ingesteld op 600 sec.
disclaimer: terminal opdracht alleen uitvoeren als je weet wat je doet, dus voorzichtig!
In Launchd staat een opdracht die bijv. om de 600 sec het Scriptje opstart.
Voorheen was er CronniX waarmee je eenvoudig een cron job kon aanmaken.
Er zal vast een App zijn die Launchd of een cron job kan aanmaken.
( Mogelijk kan m.b.v. Automater.app een file worden gestart om de 600 sec, ik gebruik Automater.app niet )
Maar m.b.v. BBEdit of TextWrangler enz lukt het ook.
Maak een bestand "detach.job.plist" aan met de plist code ( zie onder ) en plaats deze in folder "LaunchAgents"
Hieronder plist code
plaats deze code in file "detach.job.plist" in (gebruikers) ~/Bibliotheek/LaunchAgents/
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>detach_dmg.job</string>
<key>Program</key>
<string>/Users/<#jouw gebruikersnaam#>/script/close_dmg.sh</string>
<key>StartInterval</key>
<integer>600</integer>
</dict>
</plist>
Maak een (ShellScript) bestand "close_dmg.sh" aan ( code zie onder ),
maak een map "script" aan en plaatst deze in map je gebruikersmap plaats de file "close_dmg.sh" in map script
( /Users/<#jouw gebruikersnaam#>/script/close_dmg.sh )
close_dmg.sh
#!/bin/sh
cd "/Volumes"
myResult=$(hdiutil info | grep Apple_HFS | cut -d'/' -f 5)
if [ ! -z "$myResult" -a "$myResult" != " " ]; then
CHOOSE=$(osascript -e 'display dialog "Wil je de DMG sluiten?" buttons {"Open", "Sluit"} default button 2 with title "Sluit" giving up after 10
set the myChoose to button returned of the result
return myChoose')
if [ "$CHOOSE" != "Open" ]; then
hdiutil detach /Volumes/"$myResult"
fi
else
#echo "Niets doen line:14"
fi
myResult=$(hdiutil info | grep 48465300-0000-11AA-AA11-00306543ECAC | cut -d'/' -f 5)
if [ ! -z "$myResult" -a "$myResult" != " " ]; then
CHOOSE=$(osascript -e 'display dialog "Wil je de DMG sluiten?" buttons {"Open", "Sluiten"} default button 2 with title "Sluit " giving up after 10
set the myChoose to button returned of the result
return myChoose')
if [ "$CHOOSE" != "Open" ]; then
hdiutil detach /Volumes/"$myResult"
fi
else
#echo "Niets doen line:25"
fi
Als laatste moet de file via de terminal "detach.job.plist" worden geladen
launchctl load /Users/<#jouw gebruikersnaam#>/Library/LaunchAgents/detach.job.plist
Hoop dat je er wat mee kan.
Succes