src/main.go

changeset 2
edeb8e8e02b6
parent 1
05a8e80e577e
child 3
9273d04a4d89
--- a/src/main.go	Mon Dec 15 10:59:58 2025 +0100
+++ b/src/main.go	Mon Dec 15 19:18:04 2025 +0100
@@ -31,8 +31,9 @@
 	Path      string `xml:"path"`
 	BuildEnvs string `xml:"buildenvs"`
 	Build     []struct {
-		IsPlatform  string   `xml:"isplatform,attr"`
-		NotPlatform string   `xml:"not,attr"`
+		IsPlatform  string `xml:"isplatform,attr"`
+		NotPlatform string `xml:"not,attr"`
+		NotList     []string
 		Test        []string `xml:"test"`
 		Var         []struct {
 			Name  string `xml:"name,attr"`
@@ -59,12 +60,28 @@
 		config.BuildEnvMap[env.Name] = env
 	}
 
+	for ri := range config.Repository {
+		for bi := range config.Repository[ri].Build {
+			build := &config.Repository[ri].Build[bi]
+			build.NotList = strings.Split(build.NotPlatform, ",")
+		}
+	}
+
 	templateStr, err := os.ReadFile("build.template")
 	if err != nil {
 		log.Fatal(err)
 	}
 
-	tpl, err := template.New("").Parse(string(templateStr))
+	funcs := template.FuncMap{
+		"add": func(i int, n int) int {
+			return i + n
+		},
+		"sub": func(i int, n int) int {
+			return i - n
+		},
+	}
+
+	tpl, err := template.New("").Funcs(funcs).Parse(string(templateStr))
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -205,6 +222,7 @@
 
 		// upload using scp
 		cmd := exec.Command("scp", path.Join(tmp_dir, "build.tar.gz"), env.Host+":")
+		log.Print("scp: ", cmd.Args)
 		if err := cmd.Run(); err != nil {
 			log.Print("cannot copy build env to ", env.Host)
 			continue

mercurial