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