diff options
author | Andinus <andinus@nand.sh> | 2020-04-08 01:44:15 +0530 |
---|---|---|
committer | Andinus <andinus@nand.sh> | 2020-04-08 01:44:15 +0530 |
commit | 34adb3a7e676a43cd692b4da14398a7d1b0be822 (patch) | |
tree | 52d071f21eda3fdeb9768ecefb41df1c7ee551e8 /storage | |
parent | 47d22337b3a178b14e1cac287799f2c9dfb336e6 (diff) | |
download | grus-34adb3a7e676a43cd692b4da14398a7d1b0be822.tar.gz |
Prepare for next rewrite
Diffstat (limited to 'storage')
-rw-r--r-- | storage/getdir_darwin.go | 22 | ||||
-rw-r--r-- | storage/getdir_unix.go | 34 | ||||
-rw-r--r-- | storage/init.go | 63 | ||||
-rw-r--r-- | storage/storage.go | 44 |
4 files changed, 0 insertions, 163 deletions
diff --git a/storage/getdir_darwin.go b/storage/getdir_darwin.go deleted file mode 100644 index 8d6ebbf..0000000 --- a/storage/getdir_darwin.go +++ /dev/null @@ -1,22 +0,0 @@ -// +build darwin - -package storage - -import ( - "fmt" - "os" -) - -// GetDir returns grus data directory. Default data directory on -// macOS is $HOME/Library. -func GetDir() string { - cacheDir := fmt.Sprintf("%s/%s", - os.Getenv("HOME"), - "Library") - - // Grus cache directory is cacheDir/grus - grusCacheDir := fmt.Sprintf("%s/%s", cacheDir, - "grus") - - return grusCacheDir -} diff --git a/storage/getdir_unix.go b/storage/getdir_unix.go deleted file mode 100644 index 6f975db..0000000 --- a/storage/getdir_unix.go +++ /dev/null @@ -1,34 +0,0 @@ -// +build linux netbsd openbsd freebsd dragonfly - -package storage - -import ( - "fmt" - "os" -) - -// GetDir returns grus data directory. Check if the user has set -// XDG_DATA_HOME is set & if that is not set then assume it to be the -// default value which is $HOME/.local/share according to XDG Base -// Directory Specification. -func GetDir() (grusCacheDir string) { - cacheDir := SysDir() - - // Grus cache directory is cacheDir/grus. - grusCacheDir = fmt.Sprintf("%s/%s", cacheDir, - "grus") - - return -} - -// SysDir returns the system data directory, this is useful for unveil in -// OpenBSD. -func SysDir() (cacheDir string) { - cacheDir = os.Getenv("XDG_DATA_HOME") - if len(cacheDir) == 0 { - cacheDir = fmt.Sprintf("%s/%s/%s", os.Getenv("HOME"), - ".local", "share") - } - - return -} diff --git a/storage/init.go b/storage/init.go deleted file mode 100644 index 9894c5b..0000000 --- a/storage/init.go +++ /dev/null @@ -1,63 +0,0 @@ -package storage - -import ( - "database/sql" - "fmt" - "log" - - _ "github.com/mattn/go-sqlite3" -) - -// initErr will log the error and close the database connection if -// necessary. -func initErr(db *DB, err error) { - if db.Conn != nil { - db.Conn.Close() - } - log.Fatalf("Initialization Error :: %s", err.Error()) -} - -func initDB(db *DB) { - var err error - - 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) - } - - sqlstmt := []string{ - `CREATE TABLE IF NOT EXISTS words ( - word TEXT PRIMARY KEY NOT NULL, - sorted TEXT NOT NULL);`, - `INSERT INTO words(word, lexical) - values("grus", "grsu");`, - } - - // We range over statements and execute them one by one, this - // is during initialization so it doesn't matter if it takes - // few more ms. This way we know which statement caused the - // program to fail. - for _, s := range sqlstmt { - stmt, err := db.Conn.Prepare(s) - - if err != nil { - log.Printf("storage/init.go: %s\n", - "failed to prepare statement") - log.Println(s) - initErr(db, err) - } - - _, err = stmt.Exec() - stmt.Close() - if err != nil { - log.Printf("storage/init.go: %s\n", - "failed to execute statement") - log.Println(s) - initErr(db, err) - } - } -} diff --git a/storage/storage.go b/storage/storage.go deleted file mode 100644 index 9aa1a57..0000000 --- a/storage/storage.go +++ /dev/null @@ -1,44 +0,0 @@ -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 -} |