Skip to content

Commit

Permalink
Add the following items to the configuration file.
Browse files Browse the repository at this point in the history
- timezone
- ansi_quotes
  • Loading branch information
mithrandie committed Mar 9, 2021
1 parent 89859ba commit 7bbda36
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 38 deletions.
2 changes: 2 additions & 0 deletions csvq_env.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
{
"datetime_format": [],
"timezone": "Local",
"ansi_quotes": false,
"interactive_shell": {
"history_file": ".csvq_history",
"history_limit": 500,
Expand Down
2 changes: 2 additions & 0 deletions lib/cmd/default_env.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package cmd
const DefaultEnvJson = `
{
"datetime_format": [],
"timezone": "Local",
"ansi_quotes": false,
"interactive_shell": {
"history_file": ".csvq_history",
"history_limit": 500,
Expand Down
10 changes: 10 additions & 0 deletions lib/cmd/environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ const (

type Environment struct {
DatetimeFormat []string `json:"datetime_format"`
Timezone *string `json:"timezone"`
AnsiQuotes *bool `json:"ansi_quotes"`
InteractiveShell InteractiveShell `json:"interactive_shell"`
EnvironmentVariables map[string]string `json:"environment_variables"`
Palette color.PaletteConfig `json:"palette"`
Expand All @@ -49,6 +51,14 @@ func (e *Environment) Merge(e2 *Environment) {
e.DatetimeFormat = AppendStrIfNotExist(e.DatetimeFormat, f)
}

if e2.Timezone != nil {
e.Timezone = e2.Timezone
}

if e2.AnsiQuotes != nil {
e.AnsiQuotes = e2.AnsiQuotes
}

if 0 < len(e2.InteractiveShell.HistoryFile) {
e.InteractiveShell.HistoryFile = e2.InteractiveShell.HistoryFile
}
Expand Down
24 changes: 19 additions & 5 deletions lib/cmd/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -271,24 +271,38 @@ func GetDefaultNumberOfCPU() int {
return n
}

func NewFlags(env *Environment) *Flags {
func NewFlags(env *Environment) (*Flags, error) {
var datetimeFormat []string
var location = "Local"
var AnsiQuotes = false

if env != nil {
datetimeFormat = make([]string, 0, len(env.DatetimeFormat))
for _, v := range env.DatetimeFormat {
datetimeFormat = AppendStrIfNotExist(datetimeFormat, v)
}

if env.Timezone != nil {
location = *env.Timezone
}

if env.AnsiQuotes != nil {
AnsiQuotes = *env.AnsiQuotes
}
} else {
datetimeFormat = make([]string, 0, 4)
}

defaultTimeLocation, _ := GetLocation("Local")
defaultTimeLocation, err := GetLocation(location)
if err != nil {
return nil, err
}

return &Flags{
Repository: "",
Location: "Local",
Location: location,
DatetimeFormat: datetimeFormat,
AnsiQuotes: false,
AnsiQuotes: AnsiQuotes,
StrictEqual: false,
WaitTimeout: 10,
ImportOptions: NewImportOptions(),
Expand All @@ -298,7 +312,7 @@ func NewFlags(env *Environment) *Flags {
CPU: GetDefaultNumberOfCPU(),
Stats: false,
defaultTimeLocation: defaultTimeLocation,
}
}, nil
}

func (f *Flags) GetTimeLocation() *time.Location {
Expand Down
64 changes: 32 additions & 32 deletions lib/cmd/flags_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func TestExportOptions_Copy(t *testing.T) {
}

func TestFlags_GetTimeLocation(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

local, _ := time.LoadLocation("Local")
loc := flags.GetTimeLocation()
Expand All @@ -55,7 +55,7 @@ func TestFlags_GetTimeLocation(t *testing.T) {
}

func TestFlags_SetRepository(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetRepository("")
if flags.Repository != "" {
Expand Down Expand Up @@ -87,7 +87,7 @@ func TestFlags_SetRepository(t *testing.T) {
}

func TestFlags_SetLocation(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

s := ""
_ = flags.SetLocation(s)
Expand Down Expand Up @@ -118,7 +118,7 @@ func TestFlags_SetLocation(t *testing.T) {
}

func TestFlags_SetDatetimeFormat(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

format := "%Y-%m-%d"
flags.SetDatetimeFormat(format)
Expand Down Expand Up @@ -150,7 +150,7 @@ func TestFlags_SetDatetimeFormat(t *testing.T) {
}

func TestFlags_SetAnsiQuotes(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetAnsiQuotes(true)
if !flags.AnsiQuotes {
Expand All @@ -159,7 +159,7 @@ func TestFlags_SetAnsiQuotes(t *testing.T) {
}

func TestFlags_SetStrictEqual(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetStrictEqual(true)
if !flags.StrictEqual {
Expand All @@ -168,7 +168,7 @@ func TestFlags_SetStrictEqual(t *testing.T) {
}

func TestFlags_SetWaitTimeout(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

var f float64 = -1
flags.SetWaitTimeout(f)
Expand All @@ -184,7 +184,7 @@ func TestFlags_SetWaitTimeout(t *testing.T) {
}

func TestFlags_SetImportFormat(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetImportFormat("")
if flags.ImportOptions.Format != CSV {
Expand Down Expand Up @@ -213,7 +213,7 @@ func TestFlags_SetImportFormat(t *testing.T) {
}

func TestFlags_SetDelimiter(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetDelimiter("")
if flags.ImportOptions.Delimiter != ',' {
Expand Down Expand Up @@ -243,7 +243,7 @@ func TestFlags_SetDelimiter(t *testing.T) {
}

func TestFlags_SetDelimiterPositions(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetDelimiterPositions("")
if flags.ImportOptions.DelimiterPositions != nil {
Expand Down Expand Up @@ -291,7 +291,7 @@ func TestFlags_SetDelimiterPositions(t *testing.T) {
}

func TestFlags_SetJsonQuery(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetJsonQuery("{}")
if flags.ImportOptions.JsonQuery != "{}" {
Expand All @@ -300,7 +300,7 @@ func TestFlags_SetJsonQuery(t *testing.T) {
}

func TestFlags_SetEncoding(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetEncoding("sjis")
if flags.ImportOptions.Encoding != text.SJIS {
Expand All @@ -317,7 +317,7 @@ func TestFlags_SetEncoding(t *testing.T) {
}

func TestFlags_SetNoHeader(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetNoHeader(true)
if !flags.ImportOptions.NoHeader {
Expand All @@ -326,7 +326,7 @@ func TestFlags_SetNoHeader(t *testing.T) {
}

func TestFlags_SetWithoutNull(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetWithoutNull(true)
if !flags.ImportOptions.WithoutNull {
Expand All @@ -335,7 +335,7 @@ func TestFlags_SetWithoutNull(t *testing.T) {
}

func TestFlags_SetFormat(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetFormat("", "")
if flags.ExportOptions.Format != TEXT {
Expand Down Expand Up @@ -438,7 +438,7 @@ func TestFlags_SetFormat(t *testing.T) {
}

func TestFlags_SetWriteEncoding(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetWriteEncoding("sjis")
if flags.ExportOptions.Encoding != text.SJIS {
Expand All @@ -455,7 +455,7 @@ func TestFlags_SetWriteEncoding(t *testing.T) {
}

func TestFlags_SetWriteDelimiter(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetWriteDelimiter("")
if flags.ExportOptions.Delimiter != ',' {
Expand All @@ -477,7 +477,7 @@ func TestFlags_SetWriteDelimiter(t *testing.T) {
}

func TestFlags_SetWriteDelimiterPositions(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetWriteDelimiterPositions("s[1, 2, 3]")
if flags.ExportOptions.SingleLine != true {
Expand Down Expand Up @@ -505,7 +505,7 @@ func TestFlags_SetWriteDelimiterPositions(t *testing.T) {
}

func TestFlags_SetWithoutHeader(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetWithoutHeader(true)
if !flags.ExportOptions.WithoutHeader {
Expand All @@ -514,7 +514,7 @@ func TestFlags_SetWithoutHeader(t *testing.T) {
}

func TestFlags_SetLineBreak(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

_ = flags.SetLineBreak("")
if flags.ExportOptions.LineBreak != text.LF {
Expand Down Expand Up @@ -546,7 +546,7 @@ func TestFlags_SetLineBreak(t *testing.T) {
}

func TestFlags_SetEncloseAll(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetEncloseAll(true)
if !flags.ExportOptions.EncloseAll {
Expand All @@ -555,7 +555,7 @@ func TestFlags_SetEncloseAll(t *testing.T) {
}

func TestFlags_SetJsonEscape(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

s := "backslash"
_ = flags.SetJsonEscape(s)
Expand Down Expand Up @@ -586,7 +586,7 @@ func TestFlags_SetJsonEscape(t *testing.T) {
}

func TestFlags_SetPrettyPrint(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetPrettyPrint(true)
if !flags.ExportOptions.PrettyPrint {
Expand All @@ -595,7 +595,7 @@ func TestFlags_SetPrettyPrint(t *testing.T) {
}

func TestFlags_SetStripEndingLineBreak(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetStripEndingLineBreak(true)
if !flags.ExportOptions.StripEndingLineBreak {
Expand All @@ -605,7 +605,7 @@ func TestFlags_SetStripEndingLineBreak(t *testing.T) {
}

func TestFlags_SetEastAsianEncoding(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetEastAsianEncoding(true)
if !flags.ExportOptions.EastAsianEncoding {
Expand All @@ -614,7 +614,7 @@ func TestFlags_SetEastAsianEncoding(t *testing.T) {
}

func TestFlags_SetCountDiacriticalSign(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetCountDiacriticalSign(true)
if !flags.ExportOptions.CountDiacriticalSign {
Expand All @@ -623,7 +623,7 @@ func TestFlags_SetCountDiacriticalSign(t *testing.T) {
}

func TestFlags_SetCountFormatCode(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetCountFormatCode(true)
if !flags.ExportOptions.CountFormatCode {
Expand All @@ -632,7 +632,7 @@ func TestFlags_SetCountFormatCode(t *testing.T) {
}

func TestFlags_SetColor(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetColor(true)
if !flags.ExportOptions.Color {
Expand All @@ -642,7 +642,7 @@ func TestFlags_SetColor(t *testing.T) {
}

func TestFlags_SetQuiet(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetQuiet(true)
if !flags.Quiet {
Expand All @@ -651,7 +651,7 @@ func TestFlags_SetQuiet(t *testing.T) {
}

func TestFlags_SetLimitRecursion(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetLimitRecursion(int64(-100))
if flags.LimitRecursion != -1 {
Expand All @@ -665,7 +665,7 @@ func TestFlags_SetLimitRecursion(t *testing.T) {
}

func TestFlags_SetCPU(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetCPU(0)
expect := 1
Expand All @@ -680,7 +680,7 @@ func TestFlags_SetCPU(t *testing.T) {
}

func TestFlags_SetStats(t *testing.T) {
flags := NewFlags(nil)
flags, _ := NewFlags(nil)

flags.SetStats(true)
if !flags.Stats {
Expand Down
7 changes: 6 additions & 1 deletion lib/query/transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,17 @@ func NewTransaction(ctx context.Context, defaultWaitTimeout time.Duration, retry
if err != nil {
return nil, ConvertLoadConfigurationError(err)
}
flags := cmd.NewFlags(environment)

flags, err := cmd.NewFlags(environment)
if err != nil {
return nil, ConvertLoadConfigurationError(err)
}

palette, err := cmd.NewPalette(environment)
if err != nil {
return nil, ConvertLoadConfigurationError(err)
}

palette.Disable()

return &Transaction{
Expand Down

0 comments on commit 7bbda36

Please sign in to comment.