func PrintSessionStats(sess *Session) {
	sess.Out.Important("\n--------Results--------\n")
	sess.Out.Important("\n")
	sess.Out.Important("-------Findings------\n")
	sess.Out.Info("Total Findings......: %d\n", sess.Stats.Findings)
	sess.Out.Important("\n")
	sess.Out.Important("--------Files--------\n")
	sess.Out.Info("Total Files.........: %d\n", sess.Stats.FilesTotal)
	sess.Out.Info("Files Scanned.......: %d\n", sess.Stats.FilesScanned)
	sess.Out.Info("Files Ignored.......: %d\n", sess.Stats.FilesIgnored)
	sess.Out.Info("Files Dirty.........: %d\n", sess.Stats.FilesDirty)
	sess.Out.Important("\n")
	sess.Out.Important("---------SCM---------\n")
	sess.Out.Info("Repos Found.........: %d\n", sess.Stats.RepositoriesTotal)
	sess.Out.Info("Repos Cloned........: %d\n", sess.Stats.RepositoriesCloned)
	sess.Out.Info("Repos Scanned.......: %d\n", sess.Stats.RepositoriesScanned)
	sess.Out.Info("Commits Total.......: %d\n", sess.Stats.CommitsTotal)
	sess.Out.Info("Commits Scanned.....: %d\n", sess.Stats.CommitsScanned)
	sess.Out.Info("Commits Dirty.......: %d\n", sess.Stats.CommitsDirty)
	sess.Out.Important("\n")
	sess.Out.Important("-------General-------\n")
	sess.Out.Info("Wraith Version......: %s\n", sess.WraithVersion)
	sess.Out.Info("Signatures Version..: %s\n", sess.SignatureVersion)
	sess.Out.Info("Elapsed Time........: %s\n\n", time.Since(sess.Stats.StartedAt))
}
PrintSessionStats will print the performance and sessions stats to stdout at the conclusion of a session scan
package core
import (
	"encoding/csv"
	"encoding/json"
	"fmt"
	"os"
	"sort"
	"sync"
	"time"
)
type Stats struct {  
	sync.Mutex
	StartedAt           time.Time  
	FinishedAt          time.Time  
	Status              string     
	Progress            float64    
	RepositoriesTotal   int        
	RepositoriesScanned int        
	RepositoriesCloned  int        
	Organizations       int        
	CommitsScanned      int        
	CommitsDirty        int        
	FilesScanned        int        
	FilesIgnored        int        
	FilesTotal          int        
	FilesDirty          int
	FindingsTotal       int  
	Users               int  
	Targets             int  
	Repositories        int  
	CommitsTotal        int  
	Findings            int  
	Files               int  
	Commits             int  
}
func (s *Stats) IncrementFilesTotal() {
	s.Lock()
	defer s.Unlock()
	s.FilesTotal++
}
func (s *Stats) IncrementFilesDirty() {
	s.Lock()
	defer s.Unlock()
	s.FilesDirty++
}
func (s *Stats) IncrementFilesScanned() {
	s.Lock()
	defer s.Unlock()
	s.FilesScanned++
	s.Files++
}
func (s *Stats) IncrementFilesIgnored() {
	s.Lock()
	defer s.Unlock()
	s.FilesIgnored++
}
func (s *Stats) IncrementFindingsTotal() {
	s.Lock()
	defer s.Unlock()
	s.FindingsTotal++
	s.Findings++
}
func (s *Stats) IncrementRepositoriesTotal() {
	s.Lock()
	defer s.Unlock()
	s.RepositoriesTotal++
}
func (s *Stats) IncrementRepositoriesCloned() {
	s.Lock()
	defer s.Unlock()
	s.RepositoriesCloned++
	s.UpdateProgress(s.RepositoriesCloned, s.RepositoriesTotal)
}
func (s *Stats) IncrementRepositoriesScanned() {
	s.Lock()
	defer s.Unlock()
	s.RepositoriesScanned++
	s.Repositories++
	s.UpdateProgress(s.RepositoriesScanned, s.RepositoriesTotal)
}
func (s *Stats) IncrementUsers() {
	s.Lock()
	defer s.Unlock()
	s.Users++
}
func (s *Stats) IncrementCommitsScanned() {
	s.Lock()
	defer s.Unlock()
	s.CommitsScanned++
	s.Commits++
}
func (s *Stats) IncrementOrgs() {
	s.Lock()
	defer s.Unlock()
	s.Organizations++
}
func (s *Stats) IncrementCommitsDirty() {
	s.Lock()
	defer s.Unlock()
	s.CommitsDirty++
}
func (s *Session) InitStats() {
	if s.Stats != nil {
		return
	}
	s.Stats = &Stats{
		FilesIgnored:  0,
		FilesScanned:  0,
		FindingsTotal: 0,
		Organizations: 0,
		Progress:      0.0,
		StartedAt:     time.Now(),
		Status:        StatusFinished,
		Users:         0,
		Targets:       0,
		Repositories:  0,
		CommitsTotal:  0,
		Findings:      0,
		Files:         0,
	}
}
func PrintDebug(sess *Session) {
	maxFileSize := sess.MaxFileSize * 1024 * 1024
	sess.Out.Debug("\n\n")
	sess.Out.Debug("Debug Info")
	sess.Out.Debug("\nWraith version...........%v", sess.WraithVersion)
	sess.Out.Debug("\nSignatures version.......%v", sess.SignatureVersion)
	sess.Out.Debug("\nScanning tests...........%v", sess.ScanTests)
	sess.Out.Debug("\nMax file size............%d", maxFileSize)
	sess.Out.Debug("\nJSON output..............%v", sess.JSONOutput)
	sess.Out.Debug("\nCSV output...............%v", sess.CSVOutput)
	sess.Out.Debug("\nSilent output............%v", sess.Silent)
	sess.Out.Debug("\nWeb server enabled.......%v", sess.WebServer)
	sess.Out.Debug("\n")
}