libplist parece cumplir con sus requisitos. Hay un nombre de paquete de Ubuntu "libplist-utils" al que podría hacer referencia en su secuencia de comandos:
Descripción-es:Convertidor de lista de propiedades de AppleEste paquete contiene herramientas para convertir archivos de lista de propiedades de Apple de binario a XML y viceversa. Es parte de la pila de dispositivos libimobile, que proporciona acceso a iDevices (iPod, iPhone, iPad...).
Página de inicio:http://www.libimobiledevice.org/
Comando de instalación:
apt-get install libplist-utils
Ejemplo de uso:
plistutil -i Info.plist
Desde .plist
los archivos ya son XML (o se pueden convertir fácilmente), solo necesita algo para decodificar el XML.
Para eso usa xml2
:
$ cat com.apple.systemsound.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.sound.beep.volume</key>
<real>1</real>
</dict>
</plist>
$ xml2 < com.apple.systemsound.plist
/plist/@version=1.0
/plist/dict/key=com.apple.sound.beep.volume
/plist/dict/real=1
$
Deberías poder averiguar el resto.
O para Perl, use XML::Simple;
(ver perldoc
para más) para poner la estructura de datos XML en un hash.