Cómo ejecutar Applescript en el montaje en disco

9

Quiero ejecutar un Applescript cuando monte un disco específico. No se trata de si la secuencia de comandos se encuentra en el disco o no, solo debe ejecutarse cuando OS X monta el disco.

Intenté lograr esto con acciones de carpeta, pero parece que no es posible hacerlo de esta manera.

Clarificación:

  1. Llego a casa con mi Macbook
  2. conecto mi concentrador USB en el dispositivo
  3. Los discos externos están montados en OS X
  4. My Applescript se ejecuta, hace algunas cosas en esos discos

Quiero automatizar el paso 4.

    
pregunta the-kenny 09.02.2011 - 19:44

6 respuestas

4

No menciona en qué contexto está montando el disco, pero ¿qué hay de ir en sentido contrario y montar el disco con Applescript?

Menciono el contexto porque al montar un disco con Applescript es una gran advertencia que si se trata de un volumen de red y la red está protegida por contraseña, entonces el nombre de usuario y la contraseña deberían almacenarse como texto sin formato en el script. para una ejecución perfecta.

ACTUALIZACIÓN: Un poco de búsqueda encontró una pregunta similar en otro lugar. Esencialmente, se puede hacer un script para hacer esto aplicando el script como una Acción de carpeta a / Volúmenes:

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
    
respondido por el Philip Regan 09.02.2011 - 19:53
11

La solución más robusta es crear un trabajo launchd con la propiedad StartOnMount 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í es como lo hace Time Machine (vea /System/Library/LaunchDaemons/com.apple.backupd-attach.plist ).

    
respondido por el Daniel Beck 08.05.2011 - 15:25
2

Utilice una Acción de carpeta del Finder que supervise / Volúmenes. 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.

    
respondido por el user588 09.02.2011 - 20:50
1

MarcoPolo puede realizar acciones basadas en la conexión del disco.

    
respondido por el user588 09.02.2011 - 20:50
0

Una solución sería crear una aplicación Automator que encadene las 3 acciones siguientes:

  • Obtener elementos del buscador especificados
  • Montar imagen de disco
  • Ejecutar AppleScript
respondido por el kraymer 09.02.2011 - 20:04
0

Dependiendo de sus necesidades, esto puede aplicarse a carpetas / puntos de montaje específicos y es excelente para usar al montar una unidad flash USB, por ejemplo ...

enlace

    
respondido por el David Bryant 02.07.2014 - 23:39

Lea otras preguntas en las etiquetas