Quiero ejecutar un Applescript cuando monto un disco específico. No es si el script está ubicado en el disco o no, solo debería ejecutarse cuando OS X monta el disco.
Traté de lograr esto con acciones de carpeta, pero parece que no es posible hacerlo de esta manera.
Aclaración:
Quiero automatizar el paso 4.
No menciona en qué contexto está montando el disco, pero ¿qué hay de ir al otro lado y montar el disco con Applescript?
Menciono el contexto porque al montar un disco con Applescript es la gran advertencia de que si es un volumen de red, y la red está protegida con contraseña, entonces el nombre de usuario y la contraseña tendrían que almacenarse como texto sin formato en el script para una perfecta ejecución.
ACTUALIZACIÓN: Un poco de búsqueda encontró una pregunta similar en otro lugar. Esencialmente, se puede crear una secuencia de comandos para hacer esto aplicando la secuencia de comandos como una acción de carpeta a /Volumes:
on adding folder items to this_folder after receiving these_items
repeat with aItem in these_items
tell application "Finder"
if (local volume of aItem) and (name of aItem is "[Name of Hard Drive]") then
-- do something with the drive
-- eject aItem
end if
end tell
end repeat
end adding folder items to
La solución probablemente más robusta es crear un launchd
trabajo con la StartOnMount
propiedad establecida en -boolean YES
:
StartOnMount <boolean>
Esta clave opcional hace que el trabajo se inicie cada vez que se monta un sistema de archivos.
Así lo hace Time Machine (ver /System/Library/LaunchDaemons/com.apple.backupd-attach.plist
).
Use una acción de carpeta del Finder que monitoree /Volumes. Cuando aparece una nueva carpeta, eso significa que se ha adjuntado un nuevo disco. Ahora su FolderAction puede ejecutar una acción de Automator, AppleScript o script de shell para hacer lo suyo.
MarcoPolo puede realizar acciones basadas en la conexión del disco.
Una solución sería crear una aplicación Automator encadenando las 3 acciones siguientes:
Dependiendo de sus necesidades, esto se puede aplicar a carpetas/puntos de montaje específicos y es ideal para usar al montar una unidad flash USB, por ejemplo...
http://www.jbmurphy.com/2011/07/15/os-x-running-a-script-when-a-usb-drive-is-inserted/
usuario588