Ich versuche, einen Automator-Workflow zu erstellen (der als Dienst gespeichert wird, sodass ich über Kontextmenüs auf ihn zugreifen und ihn über eine Tastenkombination aufrufen kann), der dem im Finder integrierten "Show Package" ähnelt Befehl "Contents", der jedoch zusätzlich den Alias eines Pakets als Eingabe akzeptiert. Der Service wird die folgenden Anforderungen erfüllen:
Es ist nur verfügbar, wenn die Auswahl des Finders aus einem Paket oder einem Alias eines Pakets besteht.
Anstatt den Inhalt des Paketverzeichnisses selbst wie beim eingebauten Befehl anzuzeigen, zeigt der Dienst den Inhalt des Verzeichnisses "Contents" (sofern vorhanden) an, das sich unmittelbar im Paketverzeichnis befindet.
Wenn der Finder ein Paket oder ein Alias auf dem Desktop auswählt, sollte das Inhaltsverzeichnis in einem neuen Finder-Fenster geöffnet werden. Andernfalls sollte das Inhaltsverzeichnis im Finder-Fenster mit der Auswahl geöffnet werden.
Mein Ansatz bestand darin, dass das Skript zuerst feststellte, ob es sich bei der Datei um einen Alias handelt, und wenn dies der Fall ist, das Skript anwies, den Inhalt des Originals anzuzeigen. Wenn die Datei kein Alias ist, möchte ich das Skript anweisen, einfach den Inhalt der Eingabe anzuzeigen.
Ohne die Möglichkeit eines Alias als Eingabe und unter der Annahme, dass das Eingabepaket in einem Finder-Fenster ausgewählt ist, kann ich erfolgreich ein Skript schreiben, das den Inhalt des Inhaltsordners des Pakets in demselben Fenster anzeigt:
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
Wenn ich versuche, ein "if ... then ... else" -Schema einzurichten, scheitere ich.
Ich verwende die neuesten Versionen aller relevanten Software.