msantos / embedexe

Run an executable embedded in a Go binary
ISC License
5 stars 0 forks source link
memfd

embedexe

Go Reference

Run a program stored in a byte array such as an executable or a directory of executables embedded in a Go binary.

LIMITATIONS

EXAMPLES

Run an embedded executable

// Echotest forks and runs an embedded echo(1).
//
//  cp /bin/echo .
//  go build
//  ./echotest hello world
package main

import (
    _ "embed"
    "log"
    "os"

    "codeberg.org/msantos/embedexe/exec"
)

//go:embed echo
var echo []byte

func main() {
    cmd := exec.Command(echo, os.Args[1:]...)

    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr

    if err := cmd.Run(); err != nil {
        log.Fatalln("run:", cmd, err)
    }
}