Sets up the header for the help command that explains the background on how to use
        the script generally. Help for each command then stands alone in the context of this
        documentation. Although we could have documented this on the wiki, it is better served
        when shipped with the shell.

def do_help(self, arg):
        """Sets up the header for the help command that explains the background on how to use
        the script generally. Help for each command then stands alone in the context of this
        documentation. Although we could have documented this on the wiki, it is better served
        when shipped with the shell.
        """
        if arg == "":
            lines = [("The fortpy unit testing analysis shell makes it easy to analyze the results "
                      "of multiple test cases, make plots of trends and tabulate values for use in "
                      "other applications. This documentation will provide an overview of the basics. "
                      "Use 'help <command>' to get specific command help."),
                     ("Each fortpy shell session can hold the results of multiple unit tests. You can "
                      "load a unit test's results into the session using one of the 'parse' commands. "
                      "Once the test is loaded you can tabulate and plot results by setting test case "
                      "filters ('filter'), and independent and dependent variables ('indep', 'dep')."
                      "Switch between different unit tests loaded into the session using 'set'."),
                     ("To make multiple plots/tables for the same unit test, create new analysis "
                      "groups ('group'). "
                      "Each group has its own set of properties that can be set (e.g. variables, plot "
                      "labels for axes, filters for test cases, etc.) The possible properties that affect "
                      "each command are listed in the specific help for that command."),
                     ("You can save the state of a shell session using 'save' and then recover it at "
                      "a later time using 'load'. When a session is re-loaded, all the variables and "
                      "properties/settings for plots/tables are maintained and the latest state of the "
                      "unit test's results are used. A console history is also maintained with bash-like "
                      "commands (e.g. Ctrl-R for reverse history search, etc.) across sessions. You can "
                      "manipulate its behavior with 'history'.")]
            
            self._fixed_width_info(lines)
        cmd.Cmd.do_help(self, arg)