Applescript: haciendo cosas con las acciones de carpeta y enviando correos electrónicos como notificaciones

Utilizadas para automatizar procesos, también son útiles como medida de seguridad ya que permiten saber cuando se ha añadido o modificado un archivo dentro de una carpeta sensible y poder así examinar ese archivo y determinar si está realizando una acción que pueda considerarse como maliciosa.

Activar las acciones de carpeta para una carpeta determinada es muy sencillo: solo has de hacer clic con el botón alternativo del ratón encima de ella para desplegar el menú contextual y entre las opciones de Servicios encontrarás la opción Configurar acciones de Carpeta. Los scripts para las Acciones de carpeta están almacenados en:

/Library/Scripts/Folder Action Scripts

Y es allí donde debes guardar tus Applescripts para luego asignarlos como acción de carpeta.

Captura de pantalla 2015-08-05 a las 2.54.54Al seleccionar esa opción te aparecerá un cuadro de diálogo con una serie de scripts que puedes ejecutar. Un ejemplo del uso de las acciones de carpeta es la protección de las carpetas LaunchAgents y LaunchDaemons de este artículo, aunque se pueden hacer muchas más cosas.

Vamos a ponernos con esas cosas.

Estructura de un script para acciones de carpeta

Para crear un script para una acción de carpeta necesitas primero establecer cual será el disparador y luego, el contenido del script, es decir, lo que va a ocurrir cuando se active ese disparador.

Por ejemplo, el disparador para una Alerta cuando se añade un archivo a una carpeta tiene la siguiente estructura:

on adding folder items to this_folder after receiving added_items
try
<código Applescript a ejecutar>
end try
end adding folder items to

Aunque hay otros muchos disparadores interesantes, como por ejemplo:

on closing folder window for this_folder
try
<código Applescript a ejecutar>
end try
end closing folder window for

Que nos permite disparar una Acción de carpeta cuando ésta carpeta se cierra en el Finder.

Otro ejemplo es cuando mueves una ventana, de forma que si defines unas coordenadas para esa carpeta por defecto, al moverla, siempre volverá a esa ubicación predeterminada.

on moving folder window for this_folder from original_coordinates
<codigo Applescript a ejecutar>
end moving folder window for

O por ejemplo cuando abres una carpeta, que siempre se abra en una ubicación, respetando el tamaño que le has especificado manualmente:

property posicion_ventana : {30, 55,}
on opening folder this_folder
 tell application "Finder"
 activate
 set position of container window of this_folder to posicion_ventana
 end tell
end opening folder

O cuando se elimina un archivo de una carpeta:

on removing folder items from this_folder after losing these_items
<código Applescript a ejecutar>
end removing folder items from

Enviando correos

Vamos a explorar un ejemplo del uso de las acciones de carpeta con el envío de correos electrónicos, en un ejemplo en el que recibirás un correo electrónico cuando se actualice una carpeta determinada. Esto puede ser útil, por ejemplo, si quieres recibir una notificación desde el Mac cuando se ha actualizado una carpeta de un servicio de archivos en la nube para confirmar que ese archivo que has añadido se ha sincronizado de forma remota en tu Mac.

Básicamente vamos a usar una versión de la acción de carpeta que se utiliza cuando añades nuevos elementos a una carpeta.

on adding folder items to this_folder after receiving added_items
try
set recipientName to "Tu nombre"
set recipientAddress to "micorreo@correo.com" -- correo de recepción
set theSubject to "Se ha añadido un archivo a la carpeta XXXXX"
set textBody to "Se ha añadido un archivo a la carpeta vigilada XXXX en tu Mac YYYY"
set theSender to "correodeenvío@correo.com" -- la cuenta con la que vas a enviar el correo 
tell application "Mail"
set theMessage to make new outgoing message with properties {subject:theSubject, content:textBody, visible:true, sender:theSender}
tell theMessage
make new to recipient with properties {name:recipientName, address:recipientAddress}
send
end tell
end tell
tell application "Mail"
 quit
end tell
end try
end adding folder items to

 

0 0 votos
Article Rating
Subscribe
Notify of
0 Comments
Opiniones Inline
Ver todos los comentarios
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x