¿Hay alguna forma de obtener la ruta del archivo de icono de una aplicación utilizando AppleScript?

0

Actualmente estoy escribiendo un flujo de trabajo Alfred en el que quiero recuperar la ruta del archivo de icono vinculado a una aplicación. ¿Hay alguna forma de hacerlo de forma nativa usando Apple Script?

tell application "Finder"
    set appPath to POSIX path of (path to application "Terminal")
    set resourcesPath to appPath & "Contents/Resources"
    set contentFiles to (list folder resourcesPath)
end tell

Al hacerlo, logré obtener una lista de nombres de archivos, pero ahora no sé cómo filtrar el archivo .icns .

    
pregunta Ketouem 21.09.2015 - 17:35

2 respuestas

1

Sin embargo, no estoy familiarizado con Alfred en cuanto a AppleScript y obtener el nombre de ruta del ícono de un paquete de aplicaciones por lo general no está codificado, por lo que no es como que pueda obtener su ruta con un solo comando. Además, el valor de CFBundleIconFile puede ser con y sin la extensión .icns , por lo que al crear la ruta de acceso completa del Icono del paquete de aplicaciones, deberá tener eso en cuenta al escribir su código.

A modo de ejemplo, al usar el /Applications/Calculator.app incorporado /Applications/Calculator.app/Contents/Info.plist muestra que el Icono de archivo es "Calculator.icns" pero no proporciona la ruta, aunque generalmente será dentro de la carpeta de Recursos dentro del Paquete de Aplicaciones y en este caso es, /Applications/Calculator.app/Contents/Resources/Calculator.icns . Por lo tanto, tendría que obtener el valor de CFBundleIconFile del archivo .plist de la aplicación y verificar si tiene o no la extensión y prueba .icns para ver si se encuentra en la ubicación predeterminada, que normalmente es, pero no siempre .

Por lo tanto, en la Terminal, consultarías usando defaults , por ejemplo:

defaults read /Applications/Calculator.app/Contents/Info.plist CFBundleIconFile

En AppleScript, puedes establecer los resultados en una variable e ir desde allí, por ejemplo:

set appIcon to do shell script "defaults read /Applications/Calculator.app/Contents/Info.plist CFBundleIconFile"

Devuelve: Calculator.icns

Donde como,

defaults read /Applications/Utilities/Terminal.app/Contents/Info.plist CFBundleIconFile

Devoluciones: Terminal

Sin embargo, el FQP es /Applications/Utilities/Terminal.app/Contents/Resources/Terminal.icns

    
respondido por el user3439894 24.09.2015 - 12:42
-1

Prueba:

do shell script "find " & quoted form of POSIX path of (path to application "Terminal") & " -iname \"*.icns\";"
    
respondido por el adayzdone 22.09.2015 - 19:16

Lea otras preguntas en las etiquetas