我想编写Pharo Smalltalk脚本,该脚本以tonel格式加载和保存Smalltalk软件包,但我不了解用于保存软件包的API。
从磁盘上的Tonel加载到映像中的过程如下:
(TonelReader on: aRepositoryDirectory fileName: packageName)
version load.
但是将包保存到磁盘上的反向操作是什么? (假设提供了软件包名称和目标目录。)
(我在这里明确地避免使用像Metacello和Iceberg这样的高级工具。我想直接使用Tonel库,或者不依赖任何以前的存储库配置而使用Monticello。)
答案 0 :(得分:4)
也许不足为奇的是,TonelReader
的逆像是由TonelWriter
实现的:
[[[ TonelWriter on: ('someDirectory' asFileReference ensureCreateDirectory) ]]]
这里是Luke的完整示例:
[ :packageName :directory |
TonelWriter fileOut: packageName asPackage mcWorkingCopy on: directory.
] value: 'BaselineOfTonel' value: '/tmp/tonel-test'