Según el diccionario script:
PropertyListFileObject [inh. Archivo] : Un archivo que contiene datos en formato de lista de propiedades
propiedades:
(PropertyListItem) : el contenido del archivo de la lista de propiedades; se puede acceder a los elementos y propiedades del elemento de la lista de propiedades como si fueran elementos y propiedades del archivo de lista de propiedades
y en la de Apple Notas de la versión de JavaScript for Automation
... el objeto devuelto es un especificador de objeto - una referencia a la propiedad a la que se ha accedido- en lugar del valor real. Para enviar el evento get a la entidad externa y devolver su valor llame a la propiedad como una función:
Pero no sé cómo utilizar correctamente el especificadores de objetos Me devuelven, ni puedo ver cómo proporcionar el particular plistPath
a la PropertyListFile
. Esto es lo que he probado:
let app = Application.currentApplication()
app.includeStandardAdditions = true
let systemEvents = Application("System Events")
let plistPath = Path("/Users/iain/testing.plist")
let cats = systemEvents.PropertyListFile(plistPath).catsList
console.log(cats) /* --> undefined */
Estoy tratando de emular el Applescript:
to getCats()
tell application "System Events"
tell property list file plistPath
set availableCategories to value of property list item "catsList"
end tell
end tell
end getCats
Este es el archivo .plist:
nodejxa % cat ~/testing.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>blogPath</key>
<string>/Users/iain/WebDev/iainhouston.github.io/_posts/</string>
<key>catsList</key>
<array>
<string>Blog</string>
<string>Devops</string>
<string>Drupal</string>
<string>Formal Methods</string>
<string>Parish Councils</string>
<string>Scripting</string>
</array>
<key>scriptFilePath</key>
<string>/Users/iain/bin/makepost.py</string>
</dict>
</plist>