CommandBox has a helper for printing ASCII Art tables in your custom commands and task runners called print.table(). We've taken this a step further and wrapped the table printer utility in a new command so you can use it from the CLI directly. The printTable command will accept ANY data in as JSON and it will marshal it into a query for you. This means it can be a query, an array of structs, an array or arrays, and more. You can now get quick and easy visualization of any data right from the CLI or in builds.
data - JSON serialized query, array of structs, or array of arrays to represent in table form
includeHeaders - A list of headers to include.
headerNames - A list/array of column headers to use instead of the default specifically for array of arrays
debug - Only print out the names of the columns and the first row values
When using an array of arrays and not specifying headerNames, the columns will be named col_1, col_2, col_3, etc...
If you are running inside a build server, the terminal width will use a default setting, which may be smaller than you wish. Terminal width can be overridden for entire CLI
or for a specific printTable command
or for a specific print.table() call
# array of structs
printTable [{a:1,b:2},{a:3,b:4},{a:5,b:6}]
βββββ€ββββ
β a β b β
β ββββͺββββ£
β 1 β 2 β
βββββΌββββ’
β 3 β 4 β
βββββΌββββ’
β 5 β 6 β
βββββ§ββββ# array of arrays
printTable data=[[1,2],[3,4],[5,6]] headerNames=foo,bar
βββββββ€ββββββ
β foo βbar β
β ββββββͺββββββ£
β 1 β2 β
βββββββΌββββββ’
β 3 β4 β
βββββββΌββββββ’
β 5 β6 β
βββββββ§ββββββ# Query object
#extensionlist | printTable name,version
βββββββββββββββββββββββββββββββββββββββββββ€ββββββββββββββββββββ
β name β version β
β ββββββββββββββββββββββββββββββββββββββββββͺββββββββββββββββββββ£
β MySQL β 8.0.19 β
βββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββ’
β Microsoft SQL Server β 6.5.4 β
βββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββ’
β PostgreSQL β 9.4.1212 β
βββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββ’
β Ajax Extension β 1.0.0.3 β
βββββββββββββββββββββββββββββββββββββββββββ§ββββββββββββββββββββ# JSON list of all servers
server list --json | printTable name,host,port,status
ββββββββββββββββββββββββββββββββ€ββββββββββββββββββββββββββββββ€ββββββββ€βββββββββββ
β name β host β port β status β
β βββββββββββββββββββββββββββββββͺββββββββββββββββββββββββββββββͺββββββββͺβββββββββββ£
β servicetest β 127.0.0.1 β 54427 β stopped β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββΌββββββββΌβββββββββββ’
β servicetest2 β 127.0.0.1 β 52919 β stopped β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββΌββββββββΌβββββββββββ’
β FRDemos β 127.0.0.1 β 50458 β stopped β
ββββββββββββββββββββββββββββββββ§ββββββββββββββββββββββββββββββ§ββββββββ§βββββββββββconfig set terminalWidth=150#extensionlist | printTable width=150print.table( data=qry, width=150 )