Jak editovat .plist?

Když je třeba upravit property list ručně, nabízí se poměrně dost nástrojů od obyčejného texťáku až po specializovaný editor. V dnešní postu ukážu několik užitečných aplikací pro GUI i příkazovou řádku.

Xcode Property List Editor

xcode
Xcode od verze 4 obsahuje vestavěný property list editor (dříve separátní aplikace). Pomocí něj není problém otevřít existující .plist nebo vytvořit nový. Umí přidávat a odebírat záznamy, upravovat hodnoty a měnit datové typy. Žádné další speciální funkce o něj ale nečekejte.


plisteditor

PlistEdit Pro

Komerční utiltka s lehce nekřesťanskou cenou (30 USD) zvládá oproti Xcode editoru spoustu věcí navíc. Ukazuje živé preview samotného souboru, umí převádět mezi různými typy plistu, má lepší vyhledávání a třídění. V preferences najdete pár věcí na nastavení. Ke stažení jako shareware z webu vývojáře.

plisteditpro

TextEdit, vim, nano, atd.

V plaintextové podobě lze .plist editovat pomocí libovolného textového editoru. Pokud je ovšem .plist binárně zakódovaný, je třeba ho nejprve převést do plaintextu pomocí nástroje plutil. Více v minulém postu nebo na příslušné man stránce.

TextWrangler, BBEdit

Chytřejší textové editory pro OS X počítají s možností výskytu binárně zakódovaného .plistu a veškeré převádění při otevírání a ukládání udělají automaticky za uživatele.

PlistBuddy

Z pěkně vypadajích aplikací se přesuneme do prostředí příkazové řádky. PlistBuddy utilitka sídlí v adresáři /usr/libexex/. Ten není defaultně obsažen v proměnné PATH, proto je třeba spouštět program zadáním celé cesty /usr/libexec/PlistBuddy nebo umístění do proměnné PATH přidat.

Při spuštění PlistBuddyho je třeba dodat cestu k .plist souboru. Defaultně se pak zapne interativní režim, ve kterém zadáváte příkazy měnící obsah .plistu.

/usr/libexec/PlistBuddy ~/Desktop/new.plist 
File Does not Exist, Will Create: /Users/michal/Desktop/new.plist
Command: add hodnota integer 4
Command: print
Dict {
    hodnota = 4
}
Command: set hodnota 10
Command: print
Dict {
    hodnota = 10
}
Command: delete hodnota
Command: Print
Dict {
}
Command: Save
Saving...
Command: exit

Ve zdrojáku jsou použité všechny základní příkazy pro uprávu. Pár dalších najdete v manuálové stránce -> man PlistBuddy. Pokud je třeba editovat .plist pomocí PlistBuddy z nějakého skriptu, není interaktivní mód vítán. Pro jeho potlačení slouží přepínač -c.
/usr/libexec/PlistBuddy nejaky.plist -c "add hodnota string ahoj"

defaults write SuperTajneNastaveni TRUE

Příště…