如何将 Pharo Smalltalk 包以 Tonel 格式保存到磁盘?

How to save a Pharo Smalltalk package to disk in Tonel format?

我想编写 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'