Files
tsrun/cmd/buildblob/main.go
T
dmgnr e588b9a527
Deploy tsrun / deploy (push) Failing after 15s
feat: add tsrun bootstrap service and deploy
2026-07-22 06:23:21 +00:00

48 lines
1.1 KiB
Go

package main
import (
"encoding/base64"
"flag"
"fmt"
"os"
"path/filepath"
"strings"
"tsrun/internal/buildblob"
)
func main() {
inPath := flag.String("in", "secrets/tsrun.manifest.json", "manifest path")
outPath := flag.String("out", "internal/embedded/blob_gen.go", "generated Go output path")
flag.Parse()
blob, err := buildblob.BuildFromFile(*inPath)
if err != nil {
fail(err)
}
encoded := base64.StdEncoding.EncodeToString(blob)
content := strings.Builder{}
content.WriteString("package embedded\n\n")
content.WriteString("import \"encoding/base64\"\n\n")
content.WriteString("func init() {\n")
content.WriteString(fmt.Sprintf("\tdata, err := base64.StdEncoding.DecodeString(%q)\n", encoded))
content.WriteString("\tif err != nil {\n")
content.WriteString("\t\tpanic(err)\n")
content.WriteString("\t}\n")
content.WriteString("\tBlob = data\n")
content.WriteString("}\n")
if err := os.MkdirAll(filepath.Dir(*outPath), 0o755); err != nil {
fail(err)
}
if err := os.WriteFile(*outPath, []byte(content.String()), 0o600); err != nil {
fail(err)
}
}
func fail(err error) {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}