id = "unixodbc" name = "unixODBC" homepage = "https://www.unixodbc.org" executables = ["isql", "odbcinst"] platforms = ["macos", "linux"] [dotfiles] # The unixODBC project's own internals page (https://www.unixodbc.org/ # internals) says the user odbc.ini file is usually ~/.odbc.ini and that the # Driver Manager searches the process owner's home for it. ODBCINI can override # this, but an arbitrary environment-selected path is not a catalog path. paths = ["~/.odbc.ini"] exclude = [] secret = [] side_effect = false # User DSNs can contain a password attribute for the selected driver; the # project documents DSN attributes as driver-specific, so only the universally # named password field is carved out rather than guessing driver-specific keys. # DSN attribute names are case-insensitive to the Driver Manager but the # matcher is not, so both spellings writers actually use are listed. [[dotfiles.secret_paths]] file = "~/.odbc.ini" match = { prefix = ["Password", "PWD", "password", "pwd"] } [commands] format = 1 label = "Connect with isql" description = "Opens isql against a DSN, or runs SQL from standard input in batch mode. The password argument is left out so it is not typed into shell history; isql prompts or reads it from the DSN." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = true, short_bundles = false } [[commands.source]] id = "manual" kind = "manual" url = "https://manpages.debian.org/unstable/unixodbc/isql.1.en.html" revision = "2.3.14" evidence = """ isql DSN [USER [PASSWORD]] [options] -b Run 'isql' in non-interactive batch mode. In this mode, 'isql' processes -dDELIMITER Delimit columns with the specified delimiter. -w Format the result as an HTML table. -c Output the names of the columns on the first row. This option can only be used with the -d or -x options. -q Wrap the character fields in double quotes. -v Enable verbose mode, fully describing all errors. This option is useful """ [[commands.field]] id = "dsn" label = "Data source name (DSN)" type = "string" position = 0 min = 1 sources = ["manual"] [[commands.field]] id = "user" label = "User" type = "string" position = 1 sources = ["manual"] [[commands.field]] id = "batch" label = "Batch mode (SQL from stdin)" type = "boolean" option = ["-b"] sources = ["manual"] [[commands.field]] id = "delimiter" label = "Column delimiter" type = "string" option = ["-d"] sources = ["manual"] [[commands.field]] id = "column_names" label = "Print column names" description = "Needs a column delimiter." type = "boolean" option = ["-c"] sources = ["manual"] [[commands.field]] id = "html" label = "HTML table output" type = "boolean" option = ["-w"] sources = ["manual"] [[commands.field]] id = "quote" label = "Quote character fields" type = "boolean" option = ["-q"] sources = ["manual"] [[commands.field]] id = "verbose" label = "Verbose errors" type = "boolean" option = ["-v"] sources = ["manual"] [[commands.task]] id = "interactive" label = "Interactive session" fields = ["dsn", "user", "verbose"] required = ["dsn"] [[commands.task]] id = "batch-csv" label = "Batch query to delimited text" set = { batch = [true], delimiter = [","], column_names = [true] } fields = ["dsn", "user", "batch", "delimiter", "column_names", "quote"] required = ["dsn"] [[commands.group]] id = "basic" label = "Basic" fields = ["dsn", "user", "batch", "delimiter", "column_names"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["html", "quote", "verbose"]