diff options
Diffstat (limited to 'storage/storage.go')
-rw-r--r-- | storage/storage.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/storage/storage.go b/storage/storage.go new file mode 100644 index 0000000..9aa1a57 --- /dev/null +++ b/storage/storage.go @@ -0,0 +1,44 @@ +package storage + +import ( + "database/sql" + "fmt" + "log" + "sync" +) + +// DB holds the database connection, mutex & path. +type DB struct { + Path string + Mu *sync.RWMutex + Conn *sql.DB +} + +// Init initializes the database. +func Init() *DB { + db := DB{ + Mu: new(sync.RWMutex), + } + + initDB(&db) + return &db +} + +// InitConn initializes database connection. +func InitConn() *DB { + var err error + db := DB{ + Mu: new(sync.RWMutex), + } + + db.Path = fmt.Sprintf("%s/grus.db", GetDir()) + + db.Conn, err = sql.Open("sqlite3", db.Path) + if err != nil { + log.Printf("storage/init.go: %s\n", + "Failed to open database connection") + initErr(&db, err) + } + + return &db +} |