AppleScript para mostrar el contenido del paquete del original oculto del alias

5

Estoy intentando crear un flujo de trabajo de Automator (que se guardará como un Servicio, de modo que pueda acceder a él desde los menús contextuales e invocarlo con un método abreviado de teclado), que funcionará de manera muy similar a la función incorporada del Finder El comando "Mostrar contenido del paquete", pero que además acepta el alias de un paquete como entrada. El servicio satisfará lo siguiente:

Solo estará disponible cuando la selección del Finder consista en un paquete o un alias de paquete.

En lugar de mostrar el contenido del directorio del paquete como lo hace el comando incorporado, el Servicio mostrará el contenido del directorio "Contenido" (si existe), ubicado inmediatamente dentro del directorio del paquete.

Si la selección del Finder es un paquete o alias en el escritorio, el directorio de Contenidos debe abrirse en una nueva ventana del Finder. De lo contrario, el directorio de Contenidos debería abrirse en la ventana del Finder que contiene la selección.

Mi enfoque ha sido que el script primero determine si el archivo es un Alias y, si lo es, que el script muestre el contenido del original. Si el archivo no es un alias, me gustaría decirle al script que simplemente muestre el contenido de la entrada.

Excluyendo la posibilidad de un alias como entrada y asumiendo que el paquete de entrada está seleccionado en una ventana del Finder, puedo escribir un script que muestre el contenido de la carpeta de contenido del paquete en la misma ventana:

on run {input, parameters}
    set my_output to {}
    repeat with oneItem in input
        tell application "Finder" to set target of window 1 to ((oneItem as text) & "Contents")
end repeat
return input
end run

Cuando intento configurar un esquema "si ... entonces ... otra cosa", fallo.

Estoy usando las últimas versiones de todo el software relevante.

    
pregunta Parker 02.04.2014 - 13:27

3 respuestas

1

folder "Contents" of también funciona con alias:

on run {input, parameters}
    tell application "Finder"
        repeat with f in input
            open folder "Contents" of f
        end repeat
    end tell
end run

También puede asignar un acceso directo para mostrar el contenido del paquete desde Preferencias del sistema:

Comando-R muestra el archivo original de un alias.

    
respondido por el user495470 02.04.2014 - 18:51
1

Puedes probar algo como esto:

   on run {input, parameters}
    tell application "Finder"
        repeat with oneItem in input
            if kind of oneItem = "Alias" then set oneItem to oneItem's original item
            set contentsPath to (oneItem as text) & "Contents"
            if oneItem's container as text = (path to desktop as text) then
                open contentsPath
            else
                set target of window 1 to contentsPath
            end if
            activate
        end repeat
    end tell
end run

También es posible que desee incluir una prueba para asegurarse de que la entrada sea del tipo esperado.

    
respondido por el adayzdone 02.04.2014 - 16:55
0

Lo tengo:

on run {input, parameters}
    tell application "Finder"
        repeat with f in input
            reveal f
            set target of window 1 to (folder "Contents" of f as text)
        end repeat
    end tell
end run
    
respondido por el Parker 02.04.2014 - 20:12

Lea otras preguntas en las etiquetas