Come si analizza l'output di lsappinfo?

1

C'è un simpatico strumento lsappinfo che ti permette di fare cose come il monitoraggio per il cambio di app. Mi piacerebbe scrivere un programma che esegue lsappinfo listen e intraprende azioni quando l'app in primo piano cambia (in particolare, cambia i colori dei LED sulla mia nuova tastiera).

Qualcuno sa quale sia il formato di serializzazione che usa lsappinfo? Sembra così:

$ lsappinfo listen +becameFrontmost forever
Notification: kLSNotifyBecameFrontmost time=10/18/2017 06:58:18.843 dataRef={ "ApplicationType"="Foreground", "CFBundleIdentifier"="com.google.Chrome", "LSASN"=ASN:0x0-0x10010:, "LSFrontApplicationSeed"=3367, "LSMenuBarOwnerApplicationSeed"=3270, "LSMenuBarOwnerASN"=ASN:0x0-0x10010:, "LSOtherASN"=ASN:0x0-0x2f52f5: } affectedASN="Google Chrome" ASN:0x0-0x10010:  context=0x0 sessionID=186a6 notificationID=0x7fb529d00a90
Notification: kLSNotifyBecameFrontmost time=+0.835684s  dataRef={ "ApplicationType"="Foreground", "CFBundleIdentifier"="org.gnu.Emacs", "LSASN"=ASN:0x0-0x2f52f5:, "LSFrontApplicationSeed"=3368, "LSMenuBarOwnerApplicationSeed"=3271, "LSMenuBarOwnerASN"=ASN:0x0-0x2f52f5:, "LSOtherASN"=ASN:0x0-0x10010: } affectedASN="Emacs" ASN:0x0-0x2f52f5:  context=0x0 sessionID=186a6 notificationID=0x7fb529d00a90

Voglio dire, posso analizzare questo con una regex che cerca solo il campo che voglio, ma sarebbe più bello essere in grado di passarlo a qualche libreria piuttosto che usare una regex hacky che potrebbe fallire se i dati sembrano strani . Si tratta di una sorta di formato di serializzazione standard per macOS standard di cui non ho sentito parlare o è qualcosa che hanno inventato solo per questo strumento?

    
posta David Glasser 18.10.2017 - 09:01
fonte

1 risposta

1

Non è necessario: esiste un clone open source al link che può farti ottenere l'API sottostante chiama Apple.

    
risposta data 07.11.2017 - 19:08
fonte

Leggi altre domande sui tag