From 9b1d915dd1ca465a7ecc2fc1523ffc404abe02f5 Mon Sep 17 00:00:00 2001 From: Pavel Kiselev Date: Tue, 24 Jan 2017 07:55:18 +0700 Subject: [PATCH] Ability to override bookmarks directory --- pkg/api/api.go | 4 ++-- pkg/bookmarks/bookmarks.go | 10 +++++++--- pkg/command/options.go | 39 +++++++++++++++++++------------------- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/pkg/api/api.go b/pkg/api/api.go index 0256741..0a573e9 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -376,7 +376,7 @@ func HandleQuery(query string, c *gin.Context) { case "csv": c.Data(200, "text/csv", result.CSV()) case "json": - c.Data(200, "applicaiton/json", result.JSON()) + c.Data(200, "application/json", result.JSON()) case "xml": c.XML(200, result) default: @@ -385,7 +385,7 @@ func HandleQuery(query string, c *gin.Context) { } func GetBookmarks(c *gin.Context) { - bookmarks, err := bookmarks.ReadAll(bookmarks.Path()) + bookmarks, err := bookmarks.ReadAll(bookmarks.Path(command.Opts.BookmarksDir)) serveResult(bookmarks, err, c) } diff --git a/pkg/bookmarks/bookmarks.go b/pkg/bookmarks/bookmarks.go index c1aaf50..2b7d26c 100644 --- a/pkg/bookmarks/bookmarks.go +++ b/pkg/bookmarks/bookmarks.go @@ -62,9 +62,13 @@ func fileBasename(path string) string { return strings.Replace(filename, filepath.Ext(path), "", 1) } -func Path() string { - path, _ := homedir.Dir() - return fmt.Sprintf("%s/.pgweb/bookmarks", path) +func Path(overrideDir string) string { + if overrideDir == "" { + path, _ := homedir.Dir() + return fmt.Sprintf("%s/.pgweb/bookmarks", path) + } + + return overrideDir } func ReadAll(path string) (map[string]Bookmark, error) { diff --git a/pkg/command/options.go b/pkg/command/options.go index 7ae0bf2..5c19005 100644 --- a/pkg/command/options.go +++ b/pkg/command/options.go @@ -8,25 +8,26 @@ import ( ) type Options struct { - Version bool `short:"v" long:"version" description:"Print version"` - Debug bool `short:"d" long:"debug" description:"Enable debugging mode" default:"false"` - Url string `long:"url" description:"Database connection string"` - Host string `long:"host" description:"Server hostname or IP"` - Port int `long:"port" description:"Server port" default:"5432"` - User string `long:"user" description:"Database user"` - Pass string `long:"pass" description:"Password for user"` - DbName string `long:"db" description:"Database name"` - Ssl string `long:"ssl" description:"SSL option"` - HttpHost string `long:"bind" description:"HTTP server host" default:"localhost"` - HttpPort uint `long:"listen" description:"HTTP server listen port" default:"8081"` - AuthUser string `long:"auth-user" description:"HTTP basic auth user"` - AuthPass string `long:"auth-pass" description:"HTTP basic auth password"` - SkipOpen bool `short:"s" long:"skip-open" description:"Skip browser open on start"` - Sessions bool `long:"sessions" description:"Enable multiple database sessions" default:"false"` - Prefix string `long:"prefix" description:"Add a url prefix"` - ReadOnly bool `long:"readonly" description:"Run database connection in readonly mode"` - LockSession bool `long:"lock-session" description:"Lock session to a single database connection" default:"false"` - Bookmark string `short:"b" long:"bookmark" description:"Bookmark to use for connection. Bookmark files are stored under $HOME/.pgweb/bookmarks/*.toml" default:""` + Version bool `short:"v" long:"version" description:"Print version"` + Debug bool `short:"d" long:"debug" description:"Enable debugging mode" default:"false"` + Url string `long:"url" description:"Database connection string"` + Host string `long:"host" description:"Server hostname or IP"` + Port int `long:"port" description:"Server port" default:"5432"` + User string `long:"user" description:"Database user"` + Pass string `long:"pass" description:"Password for user"` + DbName string `long:"db" description:"Database name"` + Ssl string `long:"ssl" description:"SSL option"` + HttpHost string `long:"bind" description:"HTTP server host" default:"localhost"` + HttpPort uint `long:"listen" description:"HTTP server listen port" default:"8081"` + AuthUser string `long:"auth-user" description:"HTTP basic auth user"` + AuthPass string `long:"auth-pass" description:"HTTP basic auth password"` + SkipOpen bool `short:"s" long:"skip-open" description:"Skip browser open on start"` + Sessions bool `long:"sessions" description:"Enable multiple database sessions" default:"false"` + Prefix string `long:"prefix" description:"Add a url prefix"` + ReadOnly bool `long:"readonly" description:"Run database connection in readonly mode"` + LockSession bool `long:"lock-session" description:"Lock session to a single database connection" default:"false"` + Bookmark string `short:"b" long:"bookmark" description:"Bookmark to use for connection. Bookmark files are stored under $HOME/.pgweb/bookmarks/*.toml" default:""` + BookmarksDir string `long:"bookmarks-dir" description:"Overrides default directory for bookmark files to search" default:""` } var Opts Options