src/main.go

changeset 11
52487a30448e
parent 10
a4537989ed09
--- a/src/main.go	Sat Dec 20 23:10:56 2025 +0100
+++ b/src/main.go	Sun Dec 21 11:44:19 2025 +0100
@@ -88,17 +88,9 @@
 		log.Fatal(err)
 	}
 
-	db, err := sql.Open("sqlite", "uwbuild.db")
-	if err != nil {
-		log.Fatal(err)
-	}
+	db := db_init()
 	defer db.Close()
 
-	err = prepare_db(db)
-	if err != nil {
-		log.Fatal(err)
-	}
-
 	config := &Config{}
 	if err := xml.Unmarshal(data, &config); err != nil {
 		log.Fatal(err)
@@ -108,6 +100,8 @@
 		config.BuildEnvMap[env.Name] = env
 	}
 
+	db_load_config(db, config)
+
 	for ri := range config.Repository {
 		for bi := range config.Repository[ri].Build {
 			build := &config.Repository[ri].Build[bi]
@@ -171,32 +165,13 @@
 
 		results := exec_buildenvs(config, &repo, tmp)
 
-		err = save_result(&repo, commit, results, tmp)
+		err = save_result(db, &repo, commit, results, tmp)
 		if err != nil {
 			log.Print("cannot save results for commit ", commit.NodeShort)
 		}
 	}
 }
 
-func prepare_db(db *sql.DB) error {
-	_, err := db.Exec(`
-	create table Repository (
-		id integer primary key autoincrement,
-		path text not null,
-		name text not null
-	);
-	create table RepoCommit (
-	    id integer primary key autoincrement,
-	    repository_id integer not null,
-	    node text,
-	    node_short text,
-	    author text,
-	    description text,
-	    date text
-	);`)
-	return err
-}
-
 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
@@ -478,7 +453,7 @@
 	return commit
 }
 
-func save_result(repo *Repository, commit *Commit, result []BuildEnvResult, tmp_dir string) error {
+func save_result(db *sql.DB, repo *Repository, commit *Commit, result []BuildEnvResult, tmp_dir string) error {
 	out_dir := "out/"
 	src := path.Join(tmp_dir, "result")
 	dst := path.Join(out_dir, commit.Node)
@@ -488,5 +463,10 @@
 		return err
 	}
 
+	// store results in database
+	if err := db_store_results(db, repo, commit, result); err != nil {
+		return err
+	}
+
 	return nil
 }

mercurial