code cleanups for init and remove debug

This commit is contained in:
stremovsky
2019-12-09 08:30:32 +02:00
parent 15a00fd649
commit d2b2da1d1d
3 changed files with 34 additions and 19 deletions

2
.gitignore vendored
View File

@@ -1,2 +1,4 @@
databunker
databunker.db
databunker.yaml
bql.db

View File

@@ -202,41 +202,47 @@ func readEnv(cfg *Config) error {
func main() {
rand.Seed(time.Now().UnixNano())
fmt.Println("***MAIN***")
lockMemory()
var cfg Config
readFile(&cfg)
readEnv(&cfg)
fmt.Printf("%+v\n", cfg)
//fmt.Printf("%+v\n", cfg)
initPtr := flag.Bool("init", false, "a bool")
masterKeyPtr := flag.String("masterkey", "", "master key")
flag.Parse()
var err error
var masterKey []byte
if *initPtr {
fmt.Println("Init")
masterKey, err = generateMasterKey()
fmt.Printf("Master key: %x\n", masterKey)
} else if masterKeyPtr != nil && len(*masterKeyPtr) > 0 {
masterKey, err = hex.DecodeString(*masterKeyPtr)
} else {
fmt.Println("Run ./databunker -init for the firts time.")
log.Fatal("Masterkey is missing. Run ./databunker -masterkey key")
}
if err != nil {
//log.Panic("error %s", err.Error())
fmt.Printf("error %s", err.Error())
}
db, _ := newDB(masterKey, nil)
if *initPtr {
fmt.Println("Init")
fmt.Println("\nDatabunker init\n")
masterKey, err = generateMasterKey()
fmt.Printf("Master key: %x\n\n", masterKey)
fmt.Println("Init databunker.db\n")
db.initDB()
rootToken, err := db.createRootToken()
if err != nil {
//log.Panic("error %s", err.Error())
fmt.Printf("error %s", err.Error())
}
fmt.Printf("Root token: %s\n", rootToken)
fmt.Printf("API Root token: %s\n\n", rootToken)
os.Exit(0)
}
if dbExists() == false {
fmt.Println("\ndatabunker.db file is missing.\n")
fmt.Println(`Run "./databunker -init" for the first time.`)
fmt.Println("")
os.Exit(0)
}
if masterKeyPtr != nil && len(*masterKeyPtr) > 0 {
masterKey, err = hex.DecodeString(*masterKeyPtr)
} else {
fmt.Println(`Masterkey is missing.`)
fmt.Printf(`Run "./databunker -masterkey key"`)
os.Exit(0)
}
db.initUserApps()
e := mainEnv{db, cfg}

View File

@@ -15,6 +15,7 @@ import (
"database/sql"
"fmt"
"log"
"os"
"strconv"
"go.mongodb.org/mongo-driver/bson"
@@ -32,6 +33,13 @@ type dbcon struct {
hash []byte
}
func dbExists() bool {
if _, err := os.Stat("databunker.db"); os.IsNotExist(err) {
return false
}
return true
}
func newDB(masterKey []byte, urlurl *string) (dbcon, error) {
dbobj := dbcon{nil, nil, nil}
@@ -50,9 +58,9 @@ func newDB(masterKey []byte, urlurl *string) (dbcon, error) {
*/
ql.RegisterDriver2()
db, err := sql.Open("ql2", "./bql.db")
db, err := sql.Open("ql2", "./databunker.db")
if err != nil {
log.Fatalf("Failed to open ql db: %s", err)
log.Fatalf("Failed to open databunker.db file: %s", err)
}
hash := md5.Sum(masterKey)
dbobj = dbcon{db, masterKey, hash[:]}
@@ -61,7 +69,6 @@ func newDB(masterKey []byte, urlurl *string) (dbcon, error) {
func (dbobj dbcon) initDB() error {
var err error
fmt.Println("init db *****")
if err = initUsers(dbobj.db); err != nil {
return err
}
@@ -573,10 +580,10 @@ func initUsers(db *sql.DB) error {
if err != nil {
return err
}
fmt.Println("going to create indexes")
//fmt.Println("going to create indexes")
_, err = tx.Exec(`CREATE INDEX users_token ON users (token);`)
if err != nil {
fmt.Println("error in create index")
//fmt.Println("error in create index")
return err
}
_, err = tx.Exec(`CREATE INDEX users_login ON users (loginidx);`)