--- a/src/main.go Fri Dec 19 22:38:10 2025 +0100 +++ b/src/main.go Fri Dec 19 23:02:38 2025 +0100 @@ -106,6 +106,11 @@ log.Fatal(err) } + templateStr2, err := os.ReadFile("build.ps1.template") + if err != nil { + log.Fatal(err) + } + funcs := template.FuncMap{ "add": func(i int, n int) int { return i + n @@ -120,6 +125,11 @@ log.Fatal(err) } + tpl2, err := template.New("").Funcs(funcs).Parse(string(templateStr2)) + if err != nil { + log.Fatal(err) + } + err = os.Mkdir("tmp", 0755) if err != nil && !os.IsExist(err) { log.Fatal(err) @@ -141,7 +151,7 @@ continue } - if err := create_repo_archive(&repo, tpl, tmp); err != nil { + if err := create_repo_archive(&repo, tpl, tpl2, tmp); err != nil { log.Fatal(err) } @@ -154,7 +164,7 @@ } } -func create_repo_archive(repo *Repository, tpl *template.Template, tmp_dir string) error { +func create_repo_archive(repo *Repository, tpl *template.Template, tpl2 *template.Template, tmp_dir string) error { // create a build directory, that contains the repository source // and build scripts buildPath := path.Join(tmp_dir, "build") @@ -229,8 +239,20 @@ } file.Chmod(0755) + file2, err := os.Create(path.Join(buildPath, "build.ps1")) + if err != nil { + log.Print("cannot create build.ps1") + return err + } + defer file2.Close() + err = tpl2.Execute(file2, repo) + if err != nil { + log.Print("cannot execute build.ps1 template") + return err + } + // create tarball - cmd = exec.Command("tar", "cvf", "../build.tar", "src", "build.sh") + cmd = exec.Command("tar", "cvf", "../build.tar", "src", "build.sh", "build.ps1") cmd.Dir = buildPath if err := cmd.Run(); err != nil { log.Print("tar error")