diff --git a/basis/tools/deploy/embed/embed.factor b/basis/tools/deploy/embed/embed.factor index 02b9a5db8c..da8e2f78fa 100644 --- a/basis/tools/deploy/embed/embed.factor +++ b/basis/tools/deploy/embed/embed.factor @@ -4,14 +4,18 @@ bootstrap.image.private destructors io io.directories io.encodings.binary io.files locals system ; IN: tools.deploy.embed -:: embed-image ( from-image to-executable -- ) - vm to-executable copy-file - to-executable binary [| out | +:: embed-image ( image executable -- ) + executable binary [| out | out stream-tell :> offset - from-image binary [| in | + image binary [| in | in out stream-copy* ] with-disposal image-magic uintptr_t out stream-write offset uintptr_t out stream-write ] with-disposal ; +: make-embedded-image* ( from-image from-executable to-executable -- ) + swap [ copy-file ] keep embed-image ; + +: make-embedded-image ( from-image to-executable -- ) + vm swap make-embedded-image* ;