amuse.git

commit 38c44320bf224154a5cf9e22ff0f32b5a0226fba

Author: Adam <git@apiote.tk>

extract config from utils

 db/db.go | 60 ++++++++++++++++++++++++++--------------------------
 front/html.go | 6 ++--
 i18n/i18n.go | 7 +++--
 main.go | 12 +++++-----
 router.go | 8 +++---
  | 10 +++++---


diff --git a/config/config.go b/config/config.go
new file mode 100644
index 0000000000000000000000000000000000000000..598b4d795a863a4bc89552d3d78341ba58c04281
--- /dev/null
+++ b/config/config.go
@@ -0,0 +1,49 @@
+package config
+
+import (
+	"bufio"
+	"fmt"
+	"os"
+	"strings"
+)
+
+var (
+	OpenRegistration      = false
+	DataHome              = "/usr/local/amuse"
+	Port             uint = 5008
+)
+
+func ReadConfig(path string) error {
+	file, err := os.Open(path)
+	if err != nil {
+		if os.IsNotExist(err) {
+			return nil
+		} else {
+			fmt.Printf("error opening configuration %v\n", err)
+			return err
+		}
+	}
+	defer file.Close()
+
+	scanner := bufio.NewScanner(file)
+	for scanner.Scan() {
+		line := scanner.Text()
+		assignment := strings.Split(line, "=")
+		variable := strings.Trim(assignment[0], " ")
+		value := strings.Trim(assignment[1], " ")
+		switch variable {
+		case "OpenRegistration":
+			OpenRegistration = value == "true"
+		case "DataHome":
+			DataHome = value
+		case "Port":
+			fmt.Sscanf(value, "%d", &Port)
+		}
+	}
+
+	if err := scanner.Err(); err != nil {
+		fmt.Printf("error reading configuration %v\n", err)
+		return err
+	}
+	return nil
+}




diff --git a/db/db.go b/db/db.go
index 23bc3b4bcc70d409942b15ca35072482999fded8..743d306f07a2ecef6adcfc349085c94df36c9f47 100644
--- a/db/db.go
+++ b/db/db.go
@@ -2,7 +2,7 @@ package db
 
 import (
 	"notabug.org/apiote/amuse/datastructure"
-	"notabug.org/apiote/amuse/utils"
+	"notabug.org/apiote/amuse/config"
 
 	"crypto/rand"
 	"database/sql"
@@ -49,7 +49,7 @@ 	IsLong   bool
 }
 
 func Migrate() error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		return err
 	}
@@ -83,7 +83,7 @@ 	return nil
 }
 
 func MakeAdmin(username string) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -116,7 +116,7 @@ 	return nil
 }
 
 func InsertUser(username, password, sfaSecret, recoveryCodes string) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -132,7 +132,7 @@ 	return nil
 }
 
 func GetUser(username string) (*User, error) {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return nil, err
@@ -157,7 +157,7 @@ 	return &user, nil
 }
 
 func UpdateRecoveryCodes(username, recoveryCodes string) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -177,7 +177,7 @@ 	sessionIdRaw := make([]byte, 64)
 	rand.Read(sessionIdRaw)
 	sessionId := hex.EncodeToString(sessionIdRaw)
 
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return Session{}, err
@@ -199,7 +199,7 @@ 	return Session{Id: sessionId, Username: username, IsLong: long}, nil
 }
 
 func GetSession(token string) (*Session, error) {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return nil, err
@@ -225,7 +225,7 @@ 	return &session, nil
 }
 
 func ClearSessions(username string) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -242,7 +242,7 @@ 	return nil
 }
 
 func RemoveSession(username, token string) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -273,7 +273,7 @@ 		fmt.Fprintf(os.Stderr, "Load location err: %v\n", err)
 		return times, err
 	}
 
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return times, err
@@ -310,7 +310,7 @@ 	return times, nil
 }
 
 func AddToExperiences(username, itemId string, itemType datastructure.ItemType, datetime time.Time) (int, error) {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return 0, err
@@ -374,7 +374,7 @@ 	return int(insertedRowsNumber - deletedRowsNumber), nil
 }
 
 func WatchWholeSerie(username, itemId string, episodes []string, itemType datastructure.ItemType, datetime time.Time) (int, error) {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return 0, err
@@ -434,7 +434,7 @@ 	return modifiedRows, nil
 }
 
 func ClearSpecials(username, itemId string, episodes []string, itemType datastructure.ItemType) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -490,7 +490,7 @@ 	return nil
 }
 
 func AddToWantList(username, itemId string, itemType datastructure.ItemType) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -506,7 +506,7 @@ 	return nil
 }
 
 func RemoveFromWantList(username, itemId string, itemType datastructure.ItemType) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -532,7 +532,7 @@ 	return nil
 }
 
 func IsOnWantList(username, itemId string, itemType datastructure.ItemType) (bool, error) {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return false, err
@@ -555,7 +555,7 @@ 	if refs == 0 {
 		return nil
 	}
 
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -572,7 +572,7 @@ 	return nil
 }
 
 func UpdateCacheItem(itemType datastructure.ItemType, itemId string, itemInfo datastructure.ItemInfo) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -585,7 +585,7 @@ 	return nil
 }
 
 func RemoveCacheItem(itemType datastructure.ItemType, itemId string) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -598,7 +598,7 @@ 	return err
 }
 
 func CleanItemCache() error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -611,7 +611,7 @@ 	return err
 }
 
 func GetCacheItem(itemType datastructure.ItemType, itemId string) (*datastructure.ItemInfo, error) {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return nil, err
@@ -641,7 +641,7 @@
 // ====
 
 func GetCacheEntry(uri string) (*CacheEntry, error) {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return nil, err
@@ -664,7 +664,7 @@ 	return &cacheEntry, err
 }
 
 func CleanCache() error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -691,7 +691,7 @@ 	return nil
 }
 
 func SaveCacheEntry(uri, etag string, data []byte) error {
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return err
@@ -705,7 +705,7 @@ }
 
 func GetWatchlist(username, filter string, page int) (datastructure.Watchlist, error) {
 	watchlist := datastructure.Watchlist{}
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return watchlist, err
@@ -763,7 +763,7 @@ }
 
 func GetReadlist(username, filter string, page int) (datastructure.Readlist, error) {
 	readlist := datastructure.Readlist{}
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return readlist, err
@@ -821,7 +821,7 @@ }
 
 func GetTvQueue(username, filter string, page int) (datastructure.TvQueue, error) {
 	tvQueue := datastructure.TvQueue{}
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return tvQueue, err
@@ -904,7 +904,7 @@ }
 
 func GetWantlistUris() ([]string, error) {
 	uris := []string{}
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return uris, err
@@ -936,7 +936,7 @@
 
 func GetUserExperiences(username, filter string, page int) (datastructure.Experiences, error) {
 	experiences := datastructure.Experiences{}
-	db, err := sql.Open("sqlite3", utils.DataHome+"/amuse.db")
+	db, err := sql.Open("sqlite3", config.DataHome+"/amuse.db")
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "DB open err\n")
 		return experiences, err




diff --git a/front/html.go b/front/html.go
index 835e18533188c9a519785fbe51898784701d78d7..f7e5f2b856d087643c548ddde1cb1d391156cdfa 100644
--- a/front/html.go
+++ b/front/html.go
@@ -5,7 +5,7 @@ 	"notabug.org/apiote/amuse/accounts"
 	"notabug.org/apiote/amuse/datastructure"
 	"notabug.org/apiote/amuse/i18n"
 	"notabug.org/apiote/amuse/tmdb"
-	"notabug.org/apiote/amuse/utils"
+	"notabug.org/apiote/amuse/config"
 	"notabug.org/apiote/amuse/wikidata"
 
 	"bytes"
@@ -68,7 +68,7 @@ 	}
 
 	data.Strings = strings
 
-	t, _ := template.ParseFiles(utils.DataHome + "/templates/" + file + ".html")
+	t, _ := template.ParseFiles(config.DataHome + "/templates/" + file + ".html")
 	b := bytes.NewBuffer([]byte{})
 	err = t.Execute(b, data)
 	if err != nil {
@@ -156,7 +156,7 @@ 	data := RenderData{Data: secret}
 	data.State.Error = authError
 
 	var template string
-	if utils.OpenRegistration {
+	if config.OpenRegistration {
 		template = "signup"
 	} else {
 		template = "signup_locked"




diff --git a/i18n/i18n.go b/i18n/i18n.go
index 4117b965e7442cc2abd9277e0397de33cea0a345..e9b2210985d310d56c8677421bdfc99b7675c25d 100644
--- a/i18n/i18n.go
+++ b/i18n/i18n.go
@@ -1,6 +1,7 @@
 package i18n
 
 import (
+	"notabug.org/apiote/amuse/config"
 	"notabug.org/apiote/amuse/utils"
 
 	"bytes"
@@ -46,7 +47,7 @@ func LoadServerLangs() {
 	var tags []string
 	var defaultLocale string
 	defaultLocaleIndex := -1
-	filepath.Walk(utils.DataHome+"/i18n", func(path string, info os.FileInfo, err error) error {
+	filepath.Walk(config.DataHome+"/i18n", func(path string, info os.FileInfo, err error) error {
 		if !info.IsDir() {
 			if filepath.Ext(path) == ".toml" {
 				tag := strings.Replace(filepath.Base(path), ".toml", "", 1)
@@ -83,8 +84,8 @@
 func LoadStrings(language string) (Translation, error) {
 	var strings Translation
 	var defaultTranslation Translation
-	_, err := toml.DecodeFile(filepath.Join(utils.DataHome+"/i18n", language+".toml"), &strings)
-	_, err2 := toml.DecodeFile(filepath.Join(utils.DataHome+"/i18n", "default.toml"), &defaultTranslation)
+	_, err := toml.DecodeFile(filepath.Join(config.DataHome+"/i18n", language+".toml"), &strings)
+	_, err2 := toml.DecodeFile(filepath.Join(config.DataHome+"/i18n", "default.toml"), &defaultTranslation)
 	err = utils.Or(err, err2)
 
 	stringsValue := reflect.ValueOf(&strings).Elem()




diff --git a/main.go b/main.go
index ac019a3e02120722cec70b8b65f57112cdc47179..adf274c333aff32acea1956088785396345c704e 100644
--- a/main.go
+++ b/main.go
@@ -1,9 +1,9 @@
 package main
 
 import (
+	"notabug.org/apiote/amuse/config"
 	"notabug.org/apiote/amuse/db"
 	"notabug.org/apiote/amuse/libamuse"
-	"notabug.org/apiote/amuse/utils"
 
 	"flag"
 	"fmt"
@@ -17,12 +17,12 @@ 	manage := flag.String("m", "", "manage command")
 	configPath := flag.String("c", "/etc/amuse.toml", "configPath")
 	flag.Parse()
 
-	utils.ReadConfig(*configPath)
+	config.ReadConfig(*configPath)
 	if *dataHome != "" {
-		utils.DataHome = *dataHome
+		config.DataHome = *dataHome
 	}
-	if *port != -1 {
-		utils.Port = *port
+	if *port > 0 {
+		config.Port = uint(*port)
 	}
 
 	db.Migrate()
@@ -47,5 +47,5 @@ 			return
 		}
 	}
 
-	route(utils.Port)
+	route(config.Port)
 }




diff --git a/router.go b/router.go
index c79a05a2bcdaeefa1245b6d14568fee8f8fa563a..da06eb9b4447a8d9e43979067d7f017d4e3f12b9 100644
--- a/router.go
+++ b/router.go
@@ -6,7 +6,7 @@ 	"notabug.org/apiote/amuse/db"
 	"notabug.org/apiote/amuse/front"
 	"notabug.org/apiote/amuse/libamuse"
 	"notabug.org/apiote/amuse/network"
-	"notabug.org/apiote/amuse/utils"
+	"notabug.org/apiote/amuse/config"
 
 	"crypto/sha256"
 	"encoding/base64"
@@ -243,7 +243,7 @@
 func signupPost(w http.ResponseWriter, r *http.Request, acceptLanguages, mimetype string) {
 	// todo check mimetype (html,capnproto)
 
-	if !utils.OpenRegistration {
+	if !config.OpenRegistration {
 		err := errors.New("423")
 		render("", err, w, acceptLanguages, mimetype)
 		return
@@ -309,7 +309,7 @@ }
 
 func static(w http.ResponseWriter, r *http.Request) {
 	etagReq := r.Header.Get("If-None-Match")
-	f, err := os.Open(utils.DataHome + "/" + r.URL.Path[1:])
+	f, err := os.Open(config.DataHome + "/" + r.URL.Path[1:])
 	if err != nil {
 		w.WriteHeader(500)
 		return
@@ -536,7 +536,7 @@ 	setAuthCookie(false, "", w)
 	render(loggedout, err, w, acceptLanguages, mimetype)
 }
 
-func route(port int) {
+func route(port uint) {
 	portStr := fmt.Sprintf(":%d", port)
 
 	http.HandleFunc("/", index)




diff --git a/utils/config.go b/utils/config.go
deleted file mode 100644
index 8b2e65d948ff7e6bc15697c5c34f20ecd8635c1a..0000000000000000000000000000000000000000
--- a/utils/config.go
+++ /dev/null
@@ -1,47 +0,0 @@
-package utils
-
-import (
-	"bufio"
-	"fmt"
-	"os"
-	"strings"
-)
-
-var (
-	OpenRegistration = false
-	DataHome         = "/usr/local/amuse"
-	Port             = 5008
-)
-
-func ReadConfig(path string) error {
-	file, err := os.Open(path)
-	if err != nil {
-		if os.IsNotExist(err) {
-			return nil
-		} else {
-			fmt.Printf("error opening configuration %v\n", err)
-			return err
-		}
-	}
-	defer file.Close()
-
-	scanner := bufio.NewScanner(file)
-	for scanner.Scan() {
-		line := scanner.Text()
-		assignment := strings.Split(line, "=")
-		variable := strings.Trim(assignment[0], " ")
-		value := strings.Trim(assignment[1], " ")
-		switch variable {
-		case "OpenRegistration":
-			OpenRegistration = value == "true"
-		case "DataHome":
-			DataHome = value
-		}
-	}
-
-	if err := scanner.Err(); err != nil {
-		fmt.Printf("error reading configuration %v\n", err)
-		return err
-	}
-	return nil
-}