Forza un'applicazione per eseguire una delle sue opzioni di menu da uno script di shell?

4

C'è un modo per forzare l'App a eseguire una delle sue opzioni di menu se non è disponibile un'interfaccia a linea di comando?

Forse una specie di automazione?

ESEMPIO

Vorrei eseguire il comando "File > Feed di esportazione" di NewsFire per eseguire il backup della lista dei feed (file OPML). Ho provato a lanciare NewsFire tramite Terminal con "--help" ma senza fortuna.

Ecco lo script di backup che attualmente utilizzo, nel caso qualcuno lo ritenga utile. Può essere usato per salvare e ripristinare lo stato di NewsFire su più macchine (per ripristinare solo cd ~ e poi unzip backup.zip ).

#! /bin/bash
#
# Backup NewsFire preferences, feeds and cache (everything)
#

D_DESTFILE=~/Backups/Config/NewsFire.zip

# Don't update archive, create new one
if [ -e "$D_DESTFILE" ]; then
  rm $D_DESTFILE
fi

cd ~
zip -r $D_DESTFILE Library/Application\ Support/NewsFire Library/Caches/org.xlife.NewsFire Library/Preferences/org.xlife.NewsFire.plist
    
posta Bleep Bloop 14.11.2010 - 12:32
fonte

1 risposta

1

Questo è un inizio di un AppleScript per esportare:

set filename to "test file"

tell application "NetNewsWire" to activate
tell application "System Events"
    tell process "NetNewsWire"
        click menu item "Export Subscriptions…" of menu "File" of menu bar 1
        set value of first text field of first sheet of first window to filename
        click button "Save" of first sheet of first window
    end tell
end tell

tell application "NetNewsWire" to quit

Salva il file esportato con il nome file impostato nella posizione in cui è stato utilizzato per l'esportazione. Non sovrascriverà un file attualmente esistente, quindi forse puoi salvarlo in un posto temporaneo e spostarlo con uno script separato.

Nota : la mia copia di NetNewsWire aveva il comando di menu "Esporta sottoscrizioni ...", non "Esporta feed", ma se la tua è diversa, basta cambiare il nome della voce di menu sulla riga 6.

Modifica per aggiungere : devi anche avere l'opzione "Abilita accesso per i dispositivi di assistenza" nel pannello delle preferenze del sistema di accesso universale impostato affinché funzioni correttamente.

    
risposta data 14.11.2010 - 12:59
fonte

Leggi altre domande sui tag