【发布时间】:2011-02-18 06:31:53
【问题描述】:
最近我喜欢在 OSX defaults 系统中存储用于我的测试脚本的各种设置,因为它允许我将各种脚本保存在 git 中并将它们推送到 github,而不必担心留下密码/设置/等硬编码进入脚本。
使用简单的 bash 命令编写 shell 脚本时,很容易使用反引号调用默认二进制文件来读取首选项,如果读取首选项时出错,脚本会停止执行,您可以看到错误和修理它。当我尝试在 Python 或 Ruby 中做类似的事情时,它往往会有点烦人,因为您必须做额外的工作来检查默认值的返回码以查看是否有错误。
我一直在尝试通过 google 搜索使用 OSX 默认系统的库,当“默认”是您的查询字符串的一部分时,这最终会有些困难。
我想尝试直接读取 plist 文件,但似乎我找到的 plist 库(例如内置的 python 库)只能读取 XML 文件(而不是二进制文件),这是一个问题如果我曾经使用默认程序设置任何东西,因为它会将其转换回二进制 plist。
最近在尝试再次搜索 Python 库时,我将搜索词更改为使用 NSUserDefaults 之类的东西(我现在忘记了确切的词)我发现了一个名为 userdefaults 的 Python 库,但它是为旧版本的OSX (10.2) 和旧版本的 Python (2.3),我没有太多运气让它在 OSX 10.6 和 Python 2.6 上编译
理想情况下,我想找到一个库,以类似于以下 python psudo 代码的方式,可以轻松地从 OSX 默认系统中读取(并作为奖励写入)。
from some.library.defaults import defaults
settings = defaults('com.example.app')
print settings['setting_key']
由于我也开始更多地使用 Ruby,所以我也想找到一个具有类似功能的 Ruby 库。
可能我最终不得不“放弃”并围绕默认二进制文件编写自己的简单库,但我认为尝试查询其他人以查看是否存在现有解决方案并没有什么坏处。
【问题讨论】: