add python amalgamate tool

FossilOrigin-Name: 4bab5cee7c6af28e3cbdbf32f5ce4dff7880ad5cdc0020a433b4da8eb876f343
This commit is contained in:
crc 2020-11-18 20:07:05 +00:00
parent 8c99de46cc
commit 0e808f6931

View file

@ -0,0 +1,30 @@
# Amalgamate
The standard RETRO system is built using the Nga VM[1] and an
image file. The Python implementation consists of several files,
but it's nice to have a single file copy for easier deployment.
This tool combines the pieces into a single source file.
Output will be written to stdout.
## Code
Extract and generate the single file source.
~~~
{{
:include-file
#6 + s:chop 'vm/nga-python/ s:prepend here swap file:slurp here s:put ;
:source:line
dup 'from_" s:begins-with?
[ include-file ] [ s:put nl ] choose ;
---reveal---
:amalgamate
'vm/nga-python/retro.py [ source:line ] file:for-each-line ;
}}
amalgamate
~~~