src/main.go

changeset 9
eef1439666f7
parent 8
2e9b3f85c949
--- 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")

mercurial