Probe the input tree and print.

def run(self, *args, **kwargs):
        """
        Probe the input tree and print.
        """
        b_status        = True
        d_probe         = {}
        d_tree          = {}
        d_stats         = {}
        str_error       = ''
        b_timerStart    = False
        d_test          = {}

        for k, v in kwargs.items():
            if k == 'timerStart':   b_timerStart    = bool(v)

        if b_timerStart:
            other.tic()

        if not os.path.exists(self.str_inputDir):
            b_status    = False
            self.dp.qprint(
                    "input directory either not specified or does not exist.", 
                    comms = 'error'
            )
            error.warn(self, 'inputDirFail', exitToOS = True, drawBox = True)
            str_error   = 'error captured while accessing input directory'

        if b_status:
            str_origDir = os.getcwd()
            if self.b_relativeDir:
                os.chdir(self.str_inputDir)
                str_rootDir     = '.'
            else:
                str_rootDir     = self.str_inputDir

            d_probe     = self.tree_probe(      
                root    = str_rootDir
            )
            b_status    = b_status and d_probe['status']
            d_tree      = self.tree_construct(  
                l_files             = d_probe['l_files'],
                constructCallback   = self.dirsize_get
            )
            b_status    = b_status and d_tree['status']

            if self.b_test:
                d_test      = self.test_run(*args, **kwargs)
                b_status    = b_status and d_test['status']
            else:
                if self.b_stats or self.b_statsReverse:
                    d_stats     = self.stats_compute()
                    self.dp.qprint('Total size (raw):   %d' % d_stats['totalSize'],         level = 1)
                    self.dp.qprint('Total size (human): %s' % d_stats['totalSize_human'],   level = 1)
                    self.dp.qprint('Total files:        %s' % d_stats['files'],             level = 1)
                    self.dp.qprint('Total dirs:         %s' % d_stats['dirs'],              level = 1)
                    b_status    = b_status and d_stats['status']

            if self.b_jsonStats:
                print(json.dumps(d_stats, indent = 4, sort_keys = True))

            if self.b_relativeDir:
                os.chdir(str_origDir)

        d_ret = {
            'status':       b_status,
            'd_probe':      d_probe,
            'd_tree':       d_tree,
            'd_stats':      d_stats,
            'd_test':       d_test,
            'str_error':    str_error,
            'runTime':      other.toc()
        }

        if self.b_json:
            print(json.dumps(d_ret, indent = 4, sort_keys = True))

        return d_ret