dbcli / mssql-cli

A command-line client for SQL Server with auto-completion and syntax highlighting
BSD 3-Clause "New" or "Revised" License
1.35k stars 192 forks source link

Provide the ability to set configuration values via command line #538

Open davidpcaldwell opened 2 years ago

davidpcaldwell commented 2 years ago

It would be helpful in many automation scenarios to provide a --c / --config name=value command-line option.

In many scripting scenarios, there is the need to vary configuration values for a single invocation of mssql-cli. For example, one might want to create an API implemented in terms of mssql-cli and provide callers the ability to use arguments representing configuration values. Or one might wish to write a batch job that does some kind of extract from a database (in a particular format which differs from the default format) and sends it somewhere. Currently, the only apparent way to do this is to copy the configuration file, vary the values one wants to change, write out a new copy of the configuration file, and then use the --mssqlclirc option to use the new copy. In the second scenario a person could do this (although the batch file configuration would now be completely detached from the original and would not reflect subsequent changes). In the first scenario, a script can certainly do this, but it now needs a configuration file parser / writer, and the process is not nearly so intuitive as what other tools provide.

Compare this with git, which provides the -c option, or Mercurial, which provides the --config option. In these cases, values provided on the command line override all other configuration sources. Tools have converged on this solution because it provides maximum flexibility to callers.