Cómo ejecutar Applescript en montaje en disco


11

Quiero ejecutar un Applescript cuando monte un disco específico. No es si la secuencia de comandos se encuentra en el disco o no, solo debe 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:

  1. Llego a casa con mi Macbook
  2. Conecto mi Hub USB al dispositivo
  3. Los discos externos están montados en OS X
  4. Mi Applescript se ejecuta, hace algunas cosas en esos discos

Quiero automatizar el paso 4.


posible duplicado de

Respuestas:


4

No mencionas en qué contexto estás montando el disco, pero ¿qué hay de ir hacia otro lado y montar el disco con el Applescript?

Menciono el contexto porque al montar un disco con Applescript es la gran advertencia de que si se trata de un volumen de red y la red está protegida con contraseña, entonces el nombre de usuario y la contraseña deberían 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 hacer un script para hacer esto aplicando el script 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

No quiero montar un disco con AS, quiero ejecutar un AS cuando se monta un disco. Editaré mi publicación para que quede más clara.
jsadfeew

Entendí la pregunta, pero no creo que sea posible hacerlo con mucha facilidad. Sin embargo, trabajé un poco y encontré algo que debería funcionar con un poco de ajuste para satisfacer sus necesidades.
Philip Regan

Hice algunas pequeñas modificaciones al guión. Funciona bien :)
jsadfeew

12

La solución más sólida probable es crear un launchdtrabajo con la StartOnMountpropiedad establecida en -boolean YES:

StartOnMount <boolean>
Esta tecla opcional hace que el trabajo se inicie cada vez que se monta un sistema de archivos.

Así es como lo hace Time Machine (ver /System/Library/LaunchDaemons/com.apple.backupd-attach.plist).


Siento que esta es la solución más sólida, ya que depende solo de launchd, que es donde reside "este tipo de cosas" correctamente.
Matt

2

Use un Finder FolderAction que monitorea / 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 un script de shell para hacer lo suyo.



0

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

  • Obtener elementos del buscador especificados
  • Montar imagen de disco
  • Ejecute AppleScript

1
Nuevamente, no quiero montar una imagen o un disco con Applescript, quiero ejecutar un script cuando se monta un disco. No puedo encontrar una manera de lograr eso con tus pasos.
jsadfeew

Sí, veo después de la aclaración que no funciona porque ese es el disco duro que está montando (y no el disco de imagen).
kraymer

Como su respuesta aborda una pregunta diferente a la que se le pide, debería considerar eliminarla.
DanielSmedegaardBuus

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.