Estoy tratando de construir un Servicio que haga lo siguiente:
- Si se seleccionan algunas carpetas/archivos en Finder, copiar (todos) los caminos al portapapeles
- Si no se selecciona nada, copiar el "Camino" de la ventana.
Investigando y encontrando inspiración de publicaciones como Copying the current directory's path to the clipboard y MacYourself's Copy file or folder path to the clipboard in Mac OS X Lion he llegado al punto donde puedo obtener los caminos de la selección, pero parece que estoy atascado al intentar obtener el camino de la ventana actual si la selección está vacía.
ACTUALIZACIÓN 13-dic-2013. He recibido algunos comentarios útiles (ver https://apple.stackexchange.com/a/113612/7488; gracias @Flavin) así que he actualizado el código al siguiente:
on run {input, parameters}
set l to {}
tell application "Finder"
set sel to (get selection)
if not sel = {} then -- hay algunos archivos/carpetas seleccionados
repeat with f in (get selection)
set end of l to POSIX path of (f as alias)
end repeat
else --no hay nada seleccionado, obtener el camino de la ubicación actual
set end of l to POSIX path of (insertion location as alias)
end if
end tell
set text item delimiters to linefeed
set the clipboard to (l as text)
end run
La lógica parece sólida, y funciona siempre y cuando tenga "algo" seleccionado en Finder.
Sospecho que el Servicio puede no estar "Activo" cuando no hay nada seleccionado, (es decir, cuando el resultado deseado sería copiar el camino actual al portapapeles).
En esta situación, la ventana de Finder aparece de la siguiente manera:
Pero al intentar activar el Servicio muestra una lista de servicios "vacía":
Cuando tengo algo seleccionado, la lista de Servicios se llena:
El "Copy File Path" que he definido está asociado con "Files and Folders" en las Preferencias de Servicios -- ¿cuál podría ser el problema?