// This is a simple example
package main

import (
	"go.wit.com/log"

	"go.wit.com/lib/gui/repostatus"
)

func (r *repo) newScan() bool {
	if r.status == nil {
		log.Warn("repo.status = nil. not initialized for some reason")
		return false
	}
	// r.scan()
	if repostatus.VerifyLocalGoRepo(r.getPath()) {
		log.Warn("repo actually exists", r.getPath())
	} else {
		log.Warn("repo does not exist", r.getPath())
		return false
	}
	mn := r.status.GetMasterName()
	r.masterName.Set(mn)
	mv := r.status.GetMasterVersion()
	r.masterVersion.Set(mv)

	dn := r.status.GetDevelName()
	r.develName.Set(dn)
	dv := r.status.GetDevelVersion()
	r.develVersion.Set(dv)

	un := r.status.GetUserName()
	r.userName.Set(un)
	uv := r.status.GetUserVersion()
	r.userVersion.Set(uv)

	cbname := r.status.GetCurrentBranchName()
	cbversion := r.status.GetCurrentBranchVersion()
	lasttag := r.status.GetLastTagVersion()
	r.lastTag.Set(lasttag)
	r.vLabel.Set(cbname + " " + cbversion)

	status := r.getStatus()
	if status == "dirty" {
		r.dirtyLabel.Set(status)
		return false
	}
	if status == "merge" {
		r.dirtyLabel.Set(status)
		return false
	}
	if status == "PERFECT" {
		r.dirtyLabel.Set(status)
		return true
	}
	r.dirtyLabel.Set("unknown " + status)
	return false
}

func (r *repo) getStatus() string {
	if r.status.CheckDirty() {
		log.Warn("CheckDirty() true")
		return "dirty"
	}

	if r.status.CheckBranches() {
		log.Warn("Branches are Perfect")
		return "PERFECT"
	}
	log.Warn("Branches are not Perfect")
	return "merge"
}