Make JSON formatting a feature flag, enabled by default

This commit is contained in:
Dan Sosedoff
2017-09-13 23:27:54 -05:00
parent e44e66a8e8
commit d786d0018e
2 changed files with 30 additions and 21 deletions

View File

@@ -8,6 +8,8 @@ import (
"reflect" "reflect"
"strconv" "strconv"
"time" "time"
"github.com/sosedoff/pgweb/pkg/command"
) )
type Row []interface{} type Row []interface{}
@@ -108,7 +110,13 @@ func (res *Result) CSV() []byte {
} }
func (res *Result) JSON() []byte { func (res *Result) JSON() []byte {
data, _ := json.MarshalIndent(res.Format(), "", " ") var data []byte
if command.Opts.EnablePrettyJson {
data, _ = json.MarshalIndent(res.Format(), "", " ")
} else {
data, _ = json.Marshal(res.Format())
}
return data return data
} }

View File

@@ -8,26 +8,27 @@ import (
) )
type Options struct { type Options struct {
Version bool `short:"v" long:"version" description:"Print version"` Version bool `short:"v" long:"version" description:"Print version"`
Debug bool `short:"d" long:"debug" description:"Enable debugging mode" default:"false"` Debug bool `short:"d" long:"debug" description:"Enable debugging mode" default:"false"`
Url string `long:"url" description:"Database connection string"` Url string `long:"url" description:"Database connection string"`
Host string `long:"host" description:"Server hostname or IP"` Host string `long:"host" description:"Server hostname or IP"`
Port int `long:"port" description:"Server port" default:"5432"` Port int `long:"port" description:"Server port" default:"5432"`
User string `long:"user" description:"Database user"` User string `long:"user" description:"Database user"`
Pass string `long:"pass" description:"Password for user"` Pass string `long:"pass" description:"Password for user"`
DbName string `long:"db" description:"Database name"` DbName string `long:"db" description:"Database name"`
Ssl string `long:"ssl" description:"SSL option"` Ssl string `long:"ssl" description:"SSL option"`
HttpHost string `long:"bind" description:"HTTP server host" default:"localhost"` HttpHost string `long:"bind" description:"HTTP server host" default:"localhost"`
HttpPort uint `long:"listen" description:"HTTP server listen port" default:"8081"` HttpPort uint `long:"listen" description:"HTTP server listen port" default:"8081"`
AuthUser string `long:"auth-user" description:"HTTP basic auth user"` AuthUser string `long:"auth-user" description:"HTTP basic auth user"`
AuthPass string `long:"auth-pass" description:"HTTP basic auth password"` AuthPass string `long:"auth-pass" description:"HTTP basic auth password"`
SkipOpen bool `short:"s" long:"skip-open" description:"Skip browser open on start"` SkipOpen bool `short:"s" long:"skip-open" description:"Skip browser open on start"`
Sessions bool `long:"sessions" description:"Enable multiple database sessions" default:"false"` Sessions bool `long:"sessions" description:"Enable multiple database sessions" default:"false"`
Prefix string `long:"prefix" description:"Add a url prefix"` Prefix string `long:"prefix" description:"Add a url prefix"`
ReadOnly bool `long:"readonly" description:"Run database connection in readonly mode"` 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"` 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:""` 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:""` BookmarksDir string `long:"bookmarks-dir" description:"Overrides default directory for bookmark files to search" default:""`
EnablePrettyJson bool `long:"feature-pretty-json" description:"Format JSON output" default:"true"`
} }
var Opts Options var Opts Options