By default the HammerDB command line interface was designed to run interactively. However many people wanted to run it from a script and an example to do this was shown here. However this only worked on Linux and therefore @xychar proposed a modification to run command line scripts directly instead of typing commands by hand for Windows, as using pipe for standard input does not work on Windows.
Reviewing the proposed change it was clear that doing the same thing as running an autopilot script in the GUI could be adapted for use with the CLI and therefore from version 3.2 it is possible to add the auto keyword and the same of a script to run it non-interactively, for example hammerdbcli auto script_to_run.tcl on Linux or hammerdbcli.bat auto script_to_run.tcl on Windows.
An example script is shown to build a schema called buildcli.tcl. Note that the line “vwait forever” has been added so that the interpreter enters the event loop that happens automatically in interactive mode.
!/bin/tclsh puts "SETTING CONFIGURATION" global complete proc wait_to_complete {} { global complete set complete [vucomplete] if {!$complete} { after 5000 wait_to_complete } else { exit } } dbset db ora diset connection system_password oracle diset connection instance vulpdb1 diset tpcc count_ware 2 diset tpcc num_vu 2 diset tpcc tpcc_def_tab users print dict buildschema wait_to_complete vwait forever
This can then be called as follows from a driving script. The auto keyword then makes hammerdbcli enter a non-interactive mode to run the specified script.
$ more build.sh #!/bin/bash echo "BASH SCRIPT BEFORE BUILD.." ./hammerdbcli auto buildcli.tcl echo "BASH SCRIPT AFTER BUILD.."
When run the output looks as follows:
./build.sh BASH SCRIPT BEFORE BUILD.. HammerDB CLI v3.2 Copyright (C) 2003-2019 Steve Shaw Type "help" for a list of commands The xml is well-formed, applying configuration SETTING CONFIGURATION Database set to Oracle ... Vuser 2:FINISHED SUCCESS Vuser 1:Workers: 0 Active 2 Done Vuser 1:CREATING TPCC INDEXES Vuser 1:CREATING TPCC STORED PROCEDURES Vuser 1:GATHERING SCHEMA STATISTICS Vuser 1:TPCC SCHEMA COMPLETE Vuser 1:FINISHED SUCCESS ALL VIRTUAL USERS COMPLETE BASH SCRIPT AFTER BUILD..
As per the original intention this can also be driven from a Windows batch script for automation.