Generate DNS from env
This commit is contained in:
parent
fad2534267
commit
d0f588e47d
@ -20,7 +20,7 @@ var StaticDir string
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var bind = flag.String("bind", "127.0.0.1:8081", "Bind port/socket")
|
var bind = flag.String("bind", "127.0.0.1:8081", "Bind port/socket")
|
||||||
var dsn = flag.String("dsn", "fic:fic@/fic", "DSN to connect to the MySQL server")
|
var dsn = flag.String("dsn", fic.DSNGenerator(), "DSN to connect to the MySQL server")
|
||||||
var baseURL = flag.String("baseurl", "/", "URL prepended to each URL")
|
var baseURL = flag.String("baseurl", "/", "URL prepended to each URL")
|
||||||
flag.StringVar(&SubmissionDir, "submission", "./submissions/", "Base directory where save submissions")
|
flag.StringVar(&SubmissionDir, "submission", "./submissions/", "Base directory where save submissions")
|
||||||
flag.StringVar(&PKIDir, "pki", "./pki/", "Base directory where found PKI scripts")
|
flag.StringVar(&PKIDir, "pki", "./pki/", "Base directory where found PKI scripts")
|
||||||
@ -70,7 +70,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Println("Opening database...")
|
log.Println("Opening database...")
|
||||||
if err := fic.DBInit(fmt.Sprintf("%s?parseTime=true", *dsn)); err != nil {
|
if err := fic.DBInit(*dsn); err != nil {
|
||||||
log.Fatal("Cannot open the database: ", err)
|
log.Fatal("Cannot open the database: ", err)
|
||||||
}
|
}
|
||||||
defer fic.DBClose()
|
defer fic.DBClose()
|
||||||
|
@ -2,7 +2,6 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
@ -66,7 +65,7 @@ func reloadSettings(config settings.FICSettings) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var dsn = flag.String("dsn", "fic:fic@/fic", "DSN to connect to the MySQL server")
|
var dsn = flag.String("dsn", fic.DSNGenerator(), "DSN to connect to the MySQL server")
|
||||||
flag.StringVar(&SubmissionDir, "submission", "./submissions", "Base directory where save submissions")
|
flag.StringVar(&SubmissionDir, "submission", "./submissions", "Base directory where save submissions")
|
||||||
flag.StringVar(&TeamsDir, "teams", "./TEAMS", "Base directory where save teams JSON files")
|
flag.StringVar(&TeamsDir, "teams", "./TEAMS", "Base directory where save teams JSON files")
|
||||||
flag.StringVar(&fic.FilesDir, "files", "/files", "Request path prefix to reach files")
|
flag.StringVar(&fic.FilesDir, "files", "/files", "Request path prefix to reach files")
|
||||||
@ -87,7 +86,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Println("Opening DB...")
|
log.Println("Opening DB...")
|
||||||
if err := fic.DBInit(fmt.Sprintf("%s?parseTime=true", *dsn)); err != nil {
|
if err := fic.DBInit(*dsn); err != nil {
|
||||||
log.Fatal("Cannot open the database: ", err)
|
log.Fatal("Cannot open the database: ", err)
|
||||||
}
|
}
|
||||||
defer fic.DBClose()
|
defer fic.DBClose()
|
||||||
|
31
libfic/db.go
31
libfic/db.go
@ -2,14 +2,40 @@ package fic
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"os"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
)
|
)
|
||||||
|
|
||||||
var db *sql.DB
|
var db *sql.DB
|
||||||
|
|
||||||
|
func DSNGenerator() string {
|
||||||
|
db_user := "fic"
|
||||||
|
db_password := "fic"
|
||||||
|
db_host := ""
|
||||||
|
db_db := "fic"
|
||||||
|
|
||||||
|
if v, exists := os.LookupEnv("MYSQL_HOST"); exists {
|
||||||
|
db_host = v
|
||||||
|
}
|
||||||
|
if v, exists := os.LookupEnv("MYSQL_PASSWORD"); exists {
|
||||||
|
db_password = v
|
||||||
|
} else if v, exists := os.LookupEnv("MYSQL_ROOT_PASSWORD"); exists {
|
||||||
|
db_user = "root"
|
||||||
|
db_password = v
|
||||||
|
}
|
||||||
|
if v, exists := os.LookupEnv("MYSQL_USER"); exists {
|
||||||
|
db_user = v
|
||||||
|
}
|
||||||
|
if v, exists := os.LookupEnv("MYSQL_DATABASE"); exists {
|
||||||
|
db_db = v
|
||||||
|
}
|
||||||
|
|
||||||
|
return db_user + ":" + db_password + "@" + db_host + "/" + db_db
|
||||||
|
}
|
||||||
|
|
||||||
func DBInit(dsn string) error {
|
func DBInit(dsn string) error {
|
||||||
var err error
|
var err error
|
||||||
if db, err = sql.Open("mysql", dsn); err != nil {
|
if db, err = sql.Open("mysql", dsn + "?parseTime=true&foreign_key_checks=1"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -158,9 +184,6 @@ CREATE TABLE IF NOT EXISTS team_hints(
|
|||||||
`); err != nil {
|
`); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := db.Exec("SET FOREIGN_KEY_CHECKS = 1;"); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user