Esiste un modo per recuperare il percorso del file icona di un'applicazione utilizzando AppleScript?

0

Attualmente sto scrivendo un flusso di lavoro Alfred in cui voglio recuperare il percorso del file icona collegato a un'applicazione. C'è un modo per farlo in modo nativo utilizzando 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

In questo modo sono riuscito a ottenere un elenco di nomi di file, ma ora non so davvero come filtrare il file .icns .

    
posta Ketouem 21.09.2015 - 17:35
fonte

2 risposte

1

Non ho familiarità con Alfred, tuttavia, per quanto riguarda AppleScript e ottenere il nome di un'icona del pacchetto di applicazioni in genere non è codificato, quindi non è che tu possa ottenere il suo percorso con un singolo comando. Inoltre, il valore di CFBundleIconFile può essere con e senza l'estensione .icns , quindi quando crei il percorso completo dell'icona del pacchetto di applicazioni dovrai tenerne conto mentre scrivi il tuo codice.

Ad esempio, utilizzando /Applications/Calculator.app incorporato la /Applications/Calculator.app/Contents/Info.plist mostra che il file Icon è "Calculator.icns" ma non fornisce il percorso, anche se di solito sarà all'interno della cartella Risorse all'interno del pacchetto di applicazioni e in questo caso è, /Applications/Calculator.app/Contents/Resources/Calculator.icns . Quindi dovresti ottenere il valore di CFBundleIconFile dal file .plist dell'app e controllare se ha o meno l'estensione .icns e testare per vedere se si trova nella posizione predefinita, che normalmente è ma non sempre .

Quindi in Terminale devi eseguire una query utilizzando defaults , ad esempio:

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

In AppleScript puoi impostare i risultati su una variabile e andare da lì, ad esempio:

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

Restituisce: Calculator.icns

Dove,

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

Resi: Terminal

Eppure l'FQP è /Applications/Utilities/Terminal.app/Contents/Resources/Terminal.icns

    
risposta data 24.09.2015 - 12:42
fonte
-1

Prova:

do shell script "find " & quoted form of POSIX path of (path to application "Terminal") & " -iname \"*.icns\";"
    
risposta data 22.09.2015 - 19:16
fonte

Leggi altre domande sui tag