forgepb/structs.go

46 lines
1.1 KiB
Go
Raw Normal View History

2024-11-28 00:02:27 -06:00
package forgepb
2024-11-28 19:56:46 -06:00
import (
2024-11-28 23:00:29 -06:00
sync "sync"
"time"
2024-11-28 23:00:29 -06:00
2024-11-28 19:56:46 -06:00
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/lib/protobuf/zoopb"
)
2024-11-28 08:35:39 -06:00
2024-11-28 00:02:27 -06:00
// maybe an interface someday?
type Forge struct {
2024-11-28 23:00:29 -06:00
// one-time initialized data
initOnce sync.Once
initErr error // init error, if any
goSrc string // the path to go/src
goWork bool // means the user is currently using a go.work file
Config *ForgeConfigs // config repos for readonly, private, etc
Repos *gitpb.Repos // the repo protobufs
Machine *zoopb.Machine // things for virtigo to track vm's
configSave bool // if you need to save the config because things changed
hasFullScan bool // track last scan so it can be throttled
fullscan time.Time // time of the last scan so it can be throttled
2024-11-28 00:02:27 -06:00
}
2024-11-28 08:54:30 -06:00
func (f *Forge) GetGoSrc() string {
return f.goSrc
}
2024-12-07 16:50:04 -06:00
func (f *Forge) IsGoWork() bool {
return f.goWork
}
func (f *Forge) HasFullScan() bool {
return f.Repos.HasFullScan
}
func (f *Forge) FullScanRan() {
f.fullscan = time.Now()
}
func (f *Forge) FullScanAge() time.Duration {
fs := f.Repos.FullScan.AsTime()
return time.Since(fs)
}