我想编写Pharo Smalltalk脚本,以tonel格式加载和保存Smalltalk软件包到磁盘,但我不理解用于保存软件包的API。
从磁盘上的Tonel加载到图像中的工作方式如下:
(TonelReader on: aRepositoryDirectory fileName: packageName)
version load.
但是将包保存到磁盘上的逆操作是什么? (假设提供了包名和目标目录。)
(我明确地希望避免在这里使用像Metacello和Iceberg这样的高级工具。我想要直接使用Tonel库,要么使用Monticello而不依赖于任何以前的存储库配置。)
也许不出所料,看起来TonelReader
的反面是由TonelWriter
实现的:
[[[ TonelWriter on: ('someDirectory' asFileReference ensureCreateDirectory) ]]]
这是一个完整的例子礼貌Luke:
[ :packageName :directory |
TonelWriter fileOut: packageName asPackage mcWorkingCopy on: directory.
] value: 'BaselineOfTonel' value: '/tmp/tonel-test'