gitpb

package module
v0.0.169 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 17, 2025 License: GPL-3.0 Imports: 43 Imported by: 22

README

protobuf definition files for git repositories

requires autogenpb & go-mod-clean

  • go-clone go.wit.com/apps/autogenpb
  • you might also need: go-clone go.wit.com/apps/utils/go-mod-clean

Notes/TODO

  • all autogen files are stored as git metadata this includes the go.mod and go.sum files
  • this is done to keep the git commit log as clean as possible
  • metadata can be manipulated using go-mod-clean

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	GitTag_BranchType_name = map[int32]string{
		0: "ANY",
		1: "PROD",
		2: "DEVEL",
		3: "USER",
	}
	GitTag_BranchType_value = map[string]int32{
		"ANY":   0,
		"PROD":  1,
		"DEVEL": 2,
		"USER":  3,
	}
)

Enum value maps for GitTag_BranchType.

View Source
var (
	Stat_RefType_name = map[int32]string{
		0: "UNKNOWN",
		1: "LOCAL",
		2: "REMOTE",
		3: "TAG",
	}
	Stat_RefType_value = map[string]int32{
		"UNKNOWN": 0,
		"LOCAL":   1,
		"REMOTE":  2,
		"TAG":     3,
	}
)

Enum value maps for Stat_RefType.

View Source
var ErrorGitPullOnDirty error = errors.New("cannot git pull on dirty repo")
View Source
var ErrorGitPullOnLocal error = errors.New("git pull on local only branch")
View Source
var ErrorMissingGitConfig error = errors.New("missing .git/config")
View Source
var File_gitTag_proto protoreflect.FileDescriptor
View Source
var File_goDep_proto protoreflect.FileDescriptor
View Source
var INFO *log.LogFlag
View Source
var WARN *log.LogFlag

Functions

func FindPatchIdFromGitAm added in v0.0.152

func FindPatchIdFromGitAm(gitam []byte) (string, string, error)

func FindPatchIdFromGitAmBroken added in v0.0.152

func FindPatchIdFromGitAmBroken(gitAmData []byte) string

computes the stable git patch-id from the output of git-am doesn't work. it needs to add the SHA-1 parts together cat WTF.2.diff | git patch-id --stable go.wit.com/apps/utils/forged git show 5b277e7686974d2195586d5f5b82838ee9ddb036 |git patch-id --stable bf86be06af03b1a89ee155b214358362ec76f7b6 5b277e7686974d2195586d5f5b82838ee9ddb036 73d73e12dcd727721253140ea68441dd0b824f8c 0000000000000000000000000000000000000000 515792a0c4965b69f6b9e7f89e2f896148b03c97 0000000000000000000000000000000000000000 1dd8b4a7d7d42a78fd1ff84dcc2ac87bc7318ee6 0000000000000000000000000000000000000000 8478bad3e1f97818a68a014a8f30f1b2951b026b 0000000000000000000000000000000000000000

func IsGoTagPublished added in v0.0.66

func IsGoTagPublished(oldtag string, newtag string) bool

returns true for "v0.2.4" and false for "v0.2.43-asdfj" actually returns false for anything not perfectly versioned

func IsGoTagVersionGreater added in v0.0.66

func IsGoTagVersionGreater(oldtag string, newtag string) bool

returns true if old="v0.2.4" and new="v0.3.3" returns true if equal todo: make all of this smarter someday

func ListFiles added in v0.0.45

func ListFiles(directory string) []string

goes in one directory so it gets remote branch names old code. todo: modernize it

func ParseGitURL added in v0.0.141

func ParseGitURL(rawURL string) (*url.URL, error)

ParseGitURL parses a Git URL, handling both standard schemes (http, https, ssh) and the scp-like syntax (e.g., git@github.com:user/repo.git).

Types

type GitBranch added in v0.0.57

type GitBranch struct {
	Remote string `protobuf:"bytes,1,opt,name=remote,proto3" json:"remote,omitempty"` // the name of the remote repo
	Merge  string `protobuf:"bytes,2,opt,name=merge,proto3" json:"merge,omitempty"`   // the merge path from the config file
	Name   string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`     // the branch name from the config file
	// contains filtered or unexported fields
}

func (*GitBranch) Descriptor deprecated added in v0.0.57

func (*GitBranch) Descriptor() ([]byte, []int)

Deprecated: Use GitBranch.ProtoReflect.Descriptor instead.

func (*GitBranch) GetMerge added in v0.0.57

func (x *GitBranch) GetMerge() string

func (*GitBranch) GetName added in v0.0.59

func (x *GitBranch) GetName() string

func (*GitBranch) GetRemote added in v0.0.57

func (x *GitBranch) GetRemote() string

func (*GitBranch) ProtoMessage added in v0.0.57

func (*GitBranch) ProtoMessage()

func (*GitBranch) ProtoReflect added in v0.0.57

func (x *GitBranch) ProtoReflect() protoreflect.Message

func (*GitBranch) Reset added in v0.0.57

func (x *GitBranch) Reset()

func (*GitBranch) String added in v0.0.57

func (x *GitBranch) String() string

type GitBranchScanner added in v0.0.98

type GitBranchScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*GitBranchScanner) Next added in v0.0.98

func (it *GitBranchScanner) Next() *GitBranch

Next() returns the next thing in the array

func (*GitBranchScanner) Scan added in v0.0.98

func (it *GitBranchScanner) Scan() bool

type GitConfig added in v0.0.57

type GitConfig struct {
	Core map[string]string `` // map[origin] = "https:/git.wit.org/gui/gadgets"
	/* 149-byte string literal not displayed */
	Remotes map[string]*GitRemote `` // map[origin] = "https:/git.wit.org/gui/gadgets"
	/* 155-byte string literal not displayed */
	Branches map[string]*GitBranch `` // map[guimaster] = origin guimaster
	/* 157-byte string literal not displayed */
	Submodules map[string]string ``                                                                /* 161-byte string literal not displayed */
	Hashes     map[string]string ``                                                                /* 153-byte string literal not displayed */
	Versions   map[string]string ``                                                                /* 157-byte string literal not displayed */
	Local      []*GitBranch      `protobuf:"bytes,7,rep,name=local,proto3" json:"local,omitempty"` // move this away from the map<> variables
	// contains filtered or unexported fields
}

func (*GitConfig) Descriptor deprecated added in v0.0.57

func (*GitConfig) Descriptor() ([]byte, []int)

Deprecated: Use GitConfig.ProtoReflect.Descriptor instead.

func (*GitConfig) GetBranches added in v0.0.57

func (x *GitConfig) GetBranches() map[string]*GitBranch

func (*GitConfig) GetCore added in v0.0.57

func (x *GitConfig) GetCore() map[string]string

func (*GitConfig) GetHashes added in v0.0.57

func (x *GitConfig) GetHashes() map[string]string

func (*GitConfig) GetLocal added in v0.0.59

func (x *GitConfig) GetLocal() []*GitBranch

func (*GitConfig) GetRemotes added in v0.0.57

func (x *GitConfig) GetRemotes() map[string]*GitRemote

func (*GitConfig) GetSubmodules added in v0.0.57

func (x *GitConfig) GetSubmodules() map[string]string

func (*GitConfig) GetVersions added in v0.0.57

func (x *GitConfig) GetVersions() map[string]string

func (*GitConfig) ProtoMessage added in v0.0.57

func (*GitConfig) ProtoMessage()

func (*GitConfig) ProtoReflect added in v0.0.57

func (x *GitConfig) ProtoReflect() protoreflect.Message

func (*GitConfig) Reset added in v0.0.57

func (x *GitConfig) Reset()

func (*GitConfig) String added in v0.0.57

func (x *GitConfig) String() string

type GitConfigScanner added in v0.0.98

type GitConfigScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*GitConfigScanner) Next added in v0.0.98

func (it *GitConfigScanner) Next() *GitConfig

Next() returns the next thing in the array

func (*GitConfigScanner) Scan added in v0.0.98

func (it *GitConfigScanner) Scan() bool

type GitRemote added in v0.0.57

type GitRemote struct {
	Url   string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	Fetch string `protobuf:"bytes,2,opt,name=fetch,proto3" json:"fetch,omitempty"`
	// contains filtered or unexported fields
}

func (*GitRemote) Descriptor deprecated added in v0.0.57

func (*GitRemote) Descriptor() ([]byte, []int)

Deprecated: Use GitRemote.ProtoReflect.Descriptor instead.

func (*GitRemote) GetFetch added in v0.0.57

func (x *GitRemote) GetFetch() string

func (*GitRemote) GetUrl added in v0.0.57

func (x *GitRemote) GetUrl() string

func (*GitRemote) ProtoMessage added in v0.0.57

func (*GitRemote) ProtoMessage()

func (*GitRemote) ProtoReflect added in v0.0.57

func (x *GitRemote) ProtoReflect() protoreflect.Message

func (*GitRemote) Reset added in v0.0.57

func (x *GitRemote) Reset()

func (*GitRemote) String added in v0.0.57

func (x *GitRemote) String() string

type GitRemoteScanner added in v0.0.98

type GitRemoteScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*GitRemoteScanner) Next added in v0.0.98

func (it *GitRemoteScanner) Next() *GitRemote

Next() returns the next thing in the array

func (*GitRemoteScanner) Scan added in v0.0.98

func (it *GitRemoteScanner) Scan() bool

type GitTag added in v0.0.10

type GitTag struct {
	Hash        string                 `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`                               // `autogenpb:unique` // git hash
	Refname     string                 `protobuf:"bytes,2,opt,name=refname,proto3" json:"refname,omitempty"`                         // `autogenpb:unique` `autogenpb:sort` 	// tag name. treated as unique
	Subject     string                 `protobuf:"bytes,3,opt,name=subject,proto3" json:"subject,omitempty"`                         // git tag subject
	Type        GitTag_BranchType      `protobuf:"varint,4,opt,name=type,proto3,enum=gitpb.GitTag_BranchType" json:"type,omitempty"` // is set by git as the master branch
	Authordate  *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=Authordate,proto3" json:"Authordate,omitempty"`                   // git author date // should be when the patch was made
	Creatordate *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=Creatordate,proto3" json:"Creatordate,omitempty"`                 // git creator date
	// contains filtered or unexported fields
}

func (*GitTag) Descriptor deprecated added in v0.0.10

func (*GitTag) Descriptor() ([]byte, []int)

Deprecated: Use GitTag.ProtoReflect.Descriptor instead.

func (*GitTag) GetAge added in v0.0.20

func (tag *GitTag) GetAge() time.Duration

func (*GitTag) GetAuthordate added in v0.0.10

func (x *GitTag) GetAuthordate() *timestamppb.Timestamp

func (*GitTag) GetCreatordate added in v0.0.10

func (x *GitTag) GetCreatordate() *timestamppb.Timestamp

func (*GitTag) GetHash added in v0.0.10

func (x *GitTag) GetHash() string

func (*GitTag) GetRefname added in v0.0.10

func (x *GitTag) GetRefname() string

func (*GitTag) GetSubject added in v0.0.10

func (x *GitTag) GetSubject() string

func (*GitTag) GetType added in v0.0.141

func (x *GitTag) GetType() GitTag_BranchType

func (*GitTag) ProtoMessage added in v0.0.10

func (*GitTag) ProtoMessage()

func (*GitTag) ProtoReflect added in v0.0.10

func (x *GitTag) ProtoReflect() protoreflect.Message

func (*GitTag) Reset added in v0.0.10

func (x *GitTag) Reset()

func (*GitTag) String added in v0.0.10

func (x *GitTag) String() string

type GitTagAge added in v0.0.19

type GitTagAge []*GitTag

func (GitTagAge) Len added in v0.0.19

func (a GitTagAge) Len() int

func (GitTagAge) Less added in v0.0.19

func (a GitTagAge) Less(i, j int) bool

sorts in ? order

func (GitTagAge) Swap added in v0.0.19

func (a GitTagAge) Swap(i, j int)

type GitTagFunc added in v0.0.144

type GitTagFunc struct {
	Custom func(*GitTag)
	Width  int
	Attr   *guipb.ColAttr
	Header *guipb.Widget
	// contains filtered or unexported fields
}

func (*GitTagFunc) SetTitle added in v0.0.144

func (sf *GitTagFunc) SetTitle(title string)

type GitTagScanner added in v0.0.98

type GitTagScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*GitTagScanner) Next added in v0.0.98

func (it *GitTagScanner) Next() *GitTag

Next() returns the next thing in the array

func (*GitTagScanner) Scan added in v0.0.98

func (it *GitTagScanner) Scan() bool

type GitTag_BranchType added in v0.0.141

type GitTag_BranchType int32
const (
	GitTag_ANY   GitTag_BranchType = 0
	GitTag_PROD  GitTag_BranchType = 1
	GitTag_DEVEL GitTag_BranchType = 2
	GitTag_USER  GitTag_BranchType = 3
)

func (GitTag_BranchType) Descriptor added in v0.0.141

func (GitTag_BranchType) Enum added in v0.0.141

func (GitTag_BranchType) EnumDescriptor deprecated added in v0.0.141

func (GitTag_BranchType) EnumDescriptor() ([]byte, []int)

Deprecated: Use GitTag_BranchType.Descriptor instead.

func (GitTag_BranchType) Number added in v0.0.141

func (GitTag_BranchType) String added in v0.0.141

func (x GitTag_BranchType) String() string

func (GitTag_BranchType) Type added in v0.0.141

type GitTags added in v0.0.10

type GitTags struct {
	Uuid    string    `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`       // `autogenpb:uuid:ffdff813-0316-4372-9e82-4c1c7d202526`
	Version string    `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // `autogenpb:version:v0.0.47`
	GitTags []*GitTag `protobuf:"bytes,3,rep,name=gitTags,proto3" json:"gitTags,omitempty"`
	Master  *GitTag   `protobuf:"bytes,4,opt,name=master,proto3" json:"master,omitempty"`
	Devel   *GitTag   `protobuf:"bytes,5,opt,name=devel,proto3" json:"devel,omitempty"`
	// contains filtered or unexported fields
}

func NewGitTags added in v0.0.54

func NewGitTags() *GitTags

func (*GitTags) All added in v0.0.10

func (x *GitTags) All() *GitTagScanner

func (*GitTags) Append added in v0.0.10

func (x *GitTags) Append(y *GitTag)

a Append() shortcut (that does Clone() with a mutex) notsure if it really works

func (*GitTags) AppendByHash added in v0.0.50

func (x *GitTags) AppendByHash(y *GitTag) bool

func (*GitTags) AppendByRefname added in v0.0.50

func (x *GitTags) AppendByRefname(y *GitTag) bool

func (*GitTags) Clone added in v0.0.159

func (x *GitTags) Clone(y *GitTag) *GitTag

a Clone() shortcut (with a mutex). notsure if it really works

func (*GitTags) CloneByHash added in v0.0.159

func (x *GitTags) CloneByHash(y *GitTag) bool

func (*GitTags) CloneByRefname added in v0.0.159

func (x *GitTags) CloneByRefname(y *GitTag) bool

func (*GitTags) Delete added in v0.0.59

func (x *GitTags) Delete(y *GitTag) bool

func (*GitTags) DeleteByHash added in v0.0.10

func (x *GitTags) DeleteByHash(s string) bool

func (*GitTags) DeleteByRefname added in v0.0.10

func (x *GitTags) DeleteByRefname(s string) bool

func (*GitTags) Descriptor deprecated added in v0.0.10

func (*GitTags) Descriptor() ([]byte, []int)

Deprecated: Use GitTags.ProtoReflect.Descriptor instead.

func (*GitTags) FindByHash added in v0.0.10

func (x *GitTags) FindByHash(s string) *GitTag

lookup a GitTags by the Hash

func (*GitTags) FindByRefname added in v0.0.10

func (x *GitTags) FindByRefname(s string) *GitTag

lookup a GitTags by the Refname

func (*GitTags) FormatJSON added in v0.0.12

func (v *GitTags) FormatJSON() string

human readable JSON

func (*GitTags) FormatTEXT added in v0.0.12

func (v *GitTags) FormatTEXT() string

apparently this isn't stable, but it's awesomely better https://protobuf.dev/reference/go/faq/#unstable-text it's brilliant for config files!

func (*GitTags) GetAge added in v0.0.52

func (all *GitTags) GetAge(name string) time.Time

func (*GitTags) GetDevel added in v0.0.141

func (x *GitTags) GetDevel() *GitTag

func (*GitTags) GetGitTags added in v0.0.10

func (x *GitTags) GetGitTags() []*GitTag

func (*GitTags) GetMaster added in v0.0.141

func (x *GitTags) GetMaster() *GitTag

func (*GitTags) GetUuid added in v0.0.10

func (x *GitTags) GetUuid() string

func (*GitTags) GetVersion added in v0.0.10

func (x *GitTags) GetVersion() string

func (*GitTags) InsertByHash added in v0.0.49

func (x *GitTags) InsertByHash(y string) *GitTag

returns a GitTag if Hash matches, otherwise create

func (*GitTags) InsertByRefname added in v0.0.49

func (x *GitTags) InsertByRefname(y string) *GitTag

returns a GitTag if Refname matches, otherwise create

func (*GitTags) IterAll added in v0.0.96

func (x *GitTags) IterAll() iter.Seq[*GitTag]

Iterate 'for x := range' syntax using the awesome golang 1.24 'iter'

func (*GitTags) IterByRefname added in v0.0.96

func (x *GitTags) IterByRefname() iter.Seq[*GitTag]

'for x := range' syntax using the awesome golang 1.24 'iter'

func (*GitTags) Len added in v0.0.10

func (x *GitTags) Len() int

func (*GitTags) Marshal added in v0.0.12

func (v *GitTags) Marshal() ([]byte, error)

marshal to wire. This is called winning.

func (*GitTags) MarshalJSON added in v0.0.12

func (v *GitTags) MarshalJSON() ([]byte, error)

marshal json

func (*GitTags) NewTable added in v0.0.125

func (x *GitTags) NewTable(title string) *GitTagsTable

func (*GitTags) ProtoMessage added in v0.0.10

func (*GitTags) ProtoMessage()

func (*GitTags) ProtoReflect added in v0.0.10

func (x *GitTags) ProtoReflect() protoreflect.Message

func (*GitTags) Reset added in v0.0.10

func (x *GitTags) Reset()

func (*GitTags) SortByAge added in v0.0.19

func (all *GitTags) SortByAge() *GitTagScanner

func (*GitTags) SortByRefname added in v0.0.10

func (x *GitTags) SortByRefname() *GitTagScanner

func (*GitTags) SortRefname added in v0.0.156

func (pb *GitTags) SortRefname()

func (*GitTags) String added in v0.0.10

func (x *GitTags) String() string

func (*GitTags) Unmarshal added in v0.0.12

func (v *GitTags) Unmarshal(data []byte) error

unmarshal from wire. You have won.

func (*GitTags) UnmarshalJSON added in v0.0.12

func (v *GitTags) UnmarshalJSON(data []byte) error

unmarshal json

func (*GitTags) UnmarshalTEXT added in v0.0.12

func (v *GitTags) UnmarshalTEXT(data []byte) error

unmarshalTEXT. This reads the .text config file back in after the user edits it

type GitTagsScanner added in v0.0.98

type GitTagsScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*GitTagsScanner) Next added in v0.0.98

func (it *GitTagsScanner) Next() *GitTags

Next() returns the next thing in the array

func (*GitTagsScanner) Scan added in v0.0.98

func (it *GitTagsScanner) Scan() bool

type GitTagsTable added in v0.0.125

type GitTagsTable struct {
	Funcs      []*GitTagFunc
	CustomFunc func(*GitTag)
	// contains filtered or unexported fields
}

func (*GitTagsTable) AddButtonFunc added in v0.0.125

func (t *GitTagsTable) AddButtonFunc(title string, f func(*GitTag) string) *GitTagFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*GitTagsTable) AddHash added in v0.0.125

func (t *GitTagsTable) AddHash() *GitTagFunc

func (*GitTagsTable) AddIntFunc added in v0.0.125

func (t *GitTagsTable) AddIntFunc(title string, f func(*GitTag) int) *GitTagFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*GitTagsTable) AddRefname added in v0.0.125

func (t *GitTagsTable) AddRefname() *GitTagFunc

func (*GitTagsTable) AddStringFunc added in v0.0.125

func (t *GitTagsTable) AddStringFunc(title string, f func(*GitTag) string) *GitTagFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*GitTagsTable) AddSubject added in v0.0.125

func (t *GitTagsTable) AddSubject() *GitTagFunc

func (*GitTagsTable) AddTimeFunc added in v0.0.125

func (t *GitTagsTable) AddTimeFunc(title string, f func(*GitTag) time.Time) *GitTagFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*GitTagsTable) Custom added in v0.0.125

func (mt *GitTagsTable) Custom(f func(*GitTag))

func (*GitTagsTable) Delete added in v0.0.125

func (mt *GitTagsTable) Delete()

func (*GitTagsTable) GetUuid added in v0.0.125

func (mt *GitTagsTable) GetUuid() string

func (*GitTagsTable) MakeTable added in v0.0.125

func (mt *GitTagsTable) MakeTable()

func (*GitTagsTable) NewUuid added in v0.0.125

func (mt *GitTagsTable) NewUuid()

func (*GitTagsTable) PrintTable added in v0.0.125

func (t *GitTagsTable) PrintTable()

formats & prints the table as text to Stdout. a real timesaver!

func (*GitTagsTable) SetParent added in v0.0.125

func (mt *GitTagsTable) SetParent(p *gui.Node)

func (*GitTagsTable) ShowTable added in v0.0.125

func (mt *GitTagsTable) ShowTable()

type GitTimes added in v0.0.34

type GitTimes struct {
	LastPull     *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=lastPull,proto3" json:"lastPull,omitempty"`         // last time a git pull was done
	LastUpdate   *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=lastUpdate,proto3" json:"lastUpdate,omitempty"`     // when was ReloadGit() last done
	LastDirty    *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=lastDirty,proto3" json:"lastDirty,omitempty"`       // last time CheckDirty() was run
	MtimeDir     *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=mtimeDir,proto3" json:"mtimeDir,omitempty"`         // mtime for ./git // maybe useful to track
	MtimeHead    *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=mtimeHead,proto3" json:"mtimeHead,omitempty"`       // mtime for ./git/HEAD // these two mtimes allow really fast checks to see if git has changed
	MtimeIndex   *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=mtimeIndex,proto3" json:"mtimeIndex,omitempty"`     // mtime for ./git/HEAD // probably always in sync with HEAD
	MtimeFetch   *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=mtimeFetch,proto3" json:"mtimeFetch,omitempty"`     // mtime for ./git/FETCH_HEAD // last time 'git fetch' or 'git pull' was run on current branch?
	LastGoDep    *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=lastGoDep,proto3" json:"lastGoDep,omitempty"`       // mtime for last go.sum scan
	NewestCommit *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=newestCommit,proto3" json:"newestCommit,omitempty"` // when the newest commit was
	MtimeConfig  *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=mtimeConfig,proto3" json:"mtimeConfig,omitempty"`  // mtime for the .git/config file
	// contains filtered or unexported fields
}

func (*GitTimes) Descriptor deprecated added in v0.0.34

func (*GitTimes) Descriptor() ([]byte, []int)

Deprecated: Use GitTimes.ProtoReflect.Descriptor instead.

func (*GitTimes) GetLastDirty added in v0.0.34

func (x *GitTimes) GetLastDirty() *timestamppb.Timestamp

func (*GitTimes) GetLastGoDep added in v0.0.34

func (x *GitTimes) GetLastGoDep() *timestamppb.Timestamp

func (*GitTimes) GetLastPull added in v0.0.34

func (x *GitTimes) GetLastPull() *timestamppb.Timestamp

func (*GitTimes) GetLastUpdate added in v0.0.34

func (x *GitTimes) GetLastUpdate() *timestamppb.Timestamp

func (*GitTimes) GetMtimeConfig added in v0.0.57

func (x *GitTimes) GetMtimeConfig() *timestamppb.Timestamp

func (*GitTimes) GetMtimeDir added in v0.0.34

func (x *GitTimes) GetMtimeDir() *timestamppb.Timestamp

func (*GitTimes) GetMtimeFetch added in v0.0.34

func (x *GitTimes) GetMtimeFetch() *timestamppb.Timestamp

func (*GitTimes) GetMtimeHead added in v0.0.34

func (x *GitTimes) GetMtimeHead() *timestamppb.Timestamp

func (*GitTimes) GetMtimeIndex added in v0.0.34

func (x *GitTimes) GetMtimeIndex() *timestamppb.Timestamp

func (*GitTimes) GetNewestCommit added in v0.0.41

func (x *GitTimes) GetNewestCommit() *timestamppb.Timestamp

func (*GitTimes) ProtoMessage added in v0.0.34

func (*GitTimes) ProtoMessage()

func (*GitTimes) ProtoReflect added in v0.0.34

func (x *GitTimes) ProtoReflect() protoreflect.Message

func (*GitTimes) Reset added in v0.0.34

func (x *GitTimes) Reset()

func (*GitTimes) String added in v0.0.34

func (x *GitTimes) String() string

type GitTimesScanner added in v0.0.98

type GitTimesScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*GitTimesScanner) Next added in v0.0.98

func (it *GitTimesScanner) Next() *GitTimes

Next() returns the next thing in the array

func (*GitTimesScanner) Scan added in v0.0.98

func (it *GitTimesScanner) Scan() bool

type GoDep added in v0.0.10

type GoDep struct {
	Hash      string                 `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`           // `autogenpb:unique` `autogenpb:sort`	// md5sum/hash value from the go.sum file
	Ctime     *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ctime,proto3" json:"ctime,omitempty"`         // get the go date from 'go list' ?
	Version   string                 `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`     // v1.2.2
	GoPath    string                 `protobuf:"bytes,4,opt,name=goPath,proto3" json:"goPath,omitempty"`       // `autogenpb:unique`  `autogenpb:sort` // "go.wit.com/lib/foo"
	GoVersion string                 `protobuf:"bytes,5,opt,name=goVersion,proto3" json:"goVersion,omitempty"` // version of golang the developer used to make this package version
	// contains filtered or unexported fields
}

func (*GoDep) Descriptor deprecated added in v0.0.10

func (*GoDep) Descriptor() ([]byte, []int)

Deprecated: Use GoDep.ProtoReflect.Descriptor instead.

func (*GoDep) GetCtime added in v0.0.10

func (x *GoDep) GetCtime() *timestamppb.Timestamp

func (*GoDep) GetGoPath added in v0.0.10

func (x *GoDep) GetGoPath() string

func (*GoDep) GetGoVersion added in v0.0.10

func (x *GoDep) GetGoVersion() string

func (*GoDep) GetHash added in v0.0.10

func (x *GoDep) GetHash() string

func (*GoDep) GetVersion added in v0.0.10

func (x *GoDep) GetVersion() string

func (*GoDep) ProtoMessage added in v0.0.10

func (*GoDep) ProtoMessage()

func (*GoDep) ProtoReflect added in v0.0.10

func (x *GoDep) ProtoReflect() protoreflect.Message

func (*GoDep) Reset added in v0.0.10

func (x *GoDep) Reset()

func (*GoDep) String added in v0.0.10

func (x *GoDep) String() string

type GoDepScanner added in v0.0.98

type GoDepScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*GoDepScanner) Next added in v0.0.98

func (it *GoDepScanner) Next() *GoDep

Next() returns the next thing in the array

func (*GoDepScanner) Scan added in v0.0.98

func (it *GoDepScanner) Scan() bool

type GoDeps added in v0.0.10

type GoDeps struct {
	Uuid    string   `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`       // `autogenpb:uuid:7de62c09-b335-4d80-902d-08552c501b7c`
	Version string   `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // `autogenpb:version:v0.0.51`
	GoDeps  []*GoDep `protobuf:"bytes,3,rep,name=goDeps,proto3" json:"goDeps,omitempty"`   // `autogenpb:unique`  `autogenpb:sort`
	// contains filtered or unexported fields
}

func GoSumParseDir added in v0.0.72

func GoSumParseDir(moddir string) (*GoDeps, error)

attempt to parse go.* files in a directory

func NewGoDeps added in v0.0.54

func NewGoDeps() *GoDeps

func (*GoDeps) All added in v0.0.10

func (x *GoDeps) All() *GoDepScanner

func (*GoDeps) Append added in v0.0.10

func (x *GoDeps) Append(y *GoDep)

a Append() shortcut (that does Clone() with a mutex) notsure if it really works

func (*GoDeps) AppendByGoPath added in v0.0.50

func (x *GoDeps) AppendByGoPath(y *GoDep) bool

func (*GoDeps) AppendByHash added in v0.0.50

func (x *GoDeps) AppendByHash(y *GoDep) bool

func (*GoDeps) Clone added in v0.0.159

func (x *GoDeps) Clone(y *GoDep) *GoDep

a Clone() shortcut (with a mutex). notsure if it really works

func (*GoDeps) CloneByGoPath added in v0.0.159

func (x *GoDeps) CloneByGoPath(y *GoDep) bool

func (*GoDeps) CloneByHash added in v0.0.159

func (x *GoDeps) CloneByHash(y *GoDep) bool

func (*GoDeps) Delete added in v0.0.59

func (x *GoDeps) Delete(y *GoDep) bool

func (*GoDeps) DeleteByGoPath added in v0.0.10

func (x *GoDeps) DeleteByGoPath(s string) bool

func (*GoDeps) DeleteByHash added in v0.0.10

func (x *GoDeps) DeleteByHash(s string) bool

func (*GoDeps) Descriptor deprecated added in v0.0.10

func (*GoDeps) Descriptor() ([]byte, []int)

Deprecated: Use GoDeps.ProtoReflect.Descriptor instead.

func (*GoDeps) FindByGoPath added in v0.0.10

func (x *GoDeps) FindByGoPath(s string) *GoDep

lookup a GoDeps by the GoPath

func (*GoDeps) FindByHash added in v0.0.10

func (x *GoDeps) FindByHash(s string) *GoDep

lookup a GoDeps by the Hash

func (*GoDeps) GetGoDeps added in v0.0.10

func (x *GoDeps) GetGoDeps() []*GoDep

func (*GoDeps) GetUuid added in v0.0.10

func (x *GoDeps) GetUuid() string

func (*GoDeps) GetVersion added in v0.0.10

func (x *GoDeps) GetVersion() string

func (*GoDeps) InsertByGoPath added in v0.0.96

func (x *GoDeps) InsertByGoPath(y string) *GoDep

returns a GoDep if GoPath matches, otherwise create

func (*GoDeps) InsertByHash added in v0.0.96

func (x *GoDeps) InsertByHash(y string) *GoDep

returns a GoDep if Hash matches, otherwise create

func (*GoDeps) IterAll added in v0.0.96

func (x *GoDeps) IterAll() iter.Seq[*GoDep]

Iterate 'for x := range' syntax using the awesome golang 1.24 'iter'

func (*GoDeps) IterByGoPath added in v0.0.96

func (x *GoDeps) IterByGoPath() iter.Seq[*GoDep]

'for x := range' syntax using the awesome golang 1.24 'iter'

func (*GoDeps) IterByHash added in v0.0.96

func (x *GoDeps) IterByHash() iter.Seq[*GoDep]

'for x := range' syntax using the awesome golang 1.24 'iter'

func (*GoDeps) Len added in v0.0.10

func (x *GoDeps) Len() int

func (*GoDeps) ProtoMessage added in v0.0.10

func (*GoDeps) ProtoMessage()

func (*GoDeps) ProtoReflect added in v0.0.10

func (x *GoDeps) ProtoReflect() protoreflect.Message

func (*GoDeps) Reset added in v0.0.10

func (x *GoDeps) Reset()

func (*GoDeps) SortByGoPath added in v0.0.10

func (x *GoDeps) SortByGoPath() *GoDepScanner

func (*GoDeps) SortByHash added in v0.0.10

func (x *GoDeps) SortByHash() *GoDepScanner

func (*GoDeps) SortGoPath added in v0.0.156

func (pb *GoDeps) SortGoPath()

func (*GoDeps) SortHash added in v0.0.156

func (pb *GoDeps) SortHash()

func (*GoDeps) String added in v0.0.10

func (x *GoDeps) String() string

type GoDepsScanner added in v0.0.98

type GoDepsScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*GoDepsScanner) Next added in v0.0.98

func (it *GoDepsScanner) Next() *GoDeps

Next() returns the next thing in the array

func (*GoDepsScanner) Scan added in v0.0.98

func (it *GoDepsScanner) Scan() bool

type GoInfo added in v0.0.34

type GoInfo struct {
	GoPath          string  `protobuf:"bytes,1,opt,name=goPath,proto3" json:"goPath,omitempty"`                     // the logical path as used by golang: 'go.wit.com/apps/helloworld'
	Desc            string  `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"`                         // what is this repo?
	GoLibrary       bool    `protobuf:"varint,3,opt,name=goLibrary,proto3" json:"goLibrary,omitempty"`              // is this a golang library?
	GoBinary        bool    `protobuf:"varint,4,opt,name=goBinary,proto3" json:"goBinary,omitempty"`                // is this a golang binary?
	GoPrimitive     bool    `protobuf:"varint,5,opt,name=goPrimitive,proto3" json:"goPrimitive,omitempty"`          // if this is a golang primitive (only has go.mod)
	GoPlugin        bool    `protobuf:"varint,6,opt,name=goPlugin,proto3" json:"goPlugin,omitempty"`                // is this a golang plugin?
	GoProtobuf      bool    `protobuf:"varint,7,opt,name=goProtobuf,proto3" json:"goProtobuf,omitempty"`            // autogen go files from .proto
	GoDeps          *GoDeps `protobuf:"bytes,8,opt,name=goDeps,proto3" json:"goDeps,omitempty"`                     // what is in the go.sum file
	Published       *GoDeps `protobuf:"bytes,9,opt,name=published,proto3" json:"published,omitempty"`               // the last published go.mod/go.sum
	GoMod           []byte  `protobuf:"bytes,10,opt,name=goMod,proto3" json:"goMod,omitempty"`                      // the last go.mod file
	GoSum           []byte  `protobuf:"bytes,11,opt,name=goSum,proto3" json:"goSum,omitempty"`                      // the last go.sum file
	GitIgnoresGoSum bool    `protobuf:"varint,12,opt,name=gitIgnoresGoSum,proto3" json:"gitIgnoresGoSum,omitempty"` // does .gitignore ignore go.mod & go.sum?
	// contains filtered or unexported fields
}

this is probably better. think about moving to this instead

func (*GoInfo) Descriptor deprecated added in v0.0.34

func (*GoInfo) Descriptor() ([]byte, []int)

Deprecated: Use GoInfo.ProtoReflect.Descriptor instead.

func (*GoInfo) GetDesc added in v0.0.34

func (x *GoInfo) GetDesc() string

func (*GoInfo) GetGitIgnoresGoSum added in v0.0.34

func (x *GoInfo) GetGitIgnoresGoSum() bool

func (*GoInfo) GetGoBinary added in v0.0.34

func (x *GoInfo) GetGoBinary() bool

func (*GoInfo) GetGoDeps added in v0.0.34

func (x *GoInfo) GetGoDeps() *GoDeps

func (*GoInfo) GetGoLibrary added in v0.0.34

func (x *GoInfo) GetGoLibrary() bool

func (*GoInfo) GetGoMod added in v0.0.34

func (x *GoInfo) GetGoMod() []byte

func (*GoInfo) GetGoPath added in v0.0.34

func (x *GoInfo) GetGoPath() string

func (*GoInfo) GetGoPlugin added in v0.0.34

func (x *GoInfo) GetGoPlugin() bool

func (*GoInfo) GetGoPrimitive added in v0.0.34

func (x *GoInfo) GetGoPrimitive() bool

func (*GoInfo) GetGoProtobuf added in v0.0.34

func (x *GoInfo) GetGoProtobuf() bool

func (*GoInfo) GetGoSum added in v0.0.34

func (x *GoInfo) GetGoSum() []byte

func (*GoInfo) GetPublished added in v0.0.34

func (x *GoInfo) GetPublished() *GoDeps

func (*GoInfo) ProtoMessage added in v0.0.34

func (*GoInfo) ProtoMessage()

func (*GoInfo) ProtoReflect added in v0.0.34

func (x *GoInfo) ProtoReflect() protoreflect.Message

func (*GoInfo) Reset added in v0.0.34

func (x *GoInfo) Reset()

func (*GoInfo) String added in v0.0.34

func (x *GoInfo) String() string

type GoInfoScanner added in v0.0.98

type GoInfoScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*GoInfoScanner) Next added in v0.0.98

func (it *GoInfoScanner) Next() *GoInfo

Next() returns the next thing in the array

func (*GoInfoScanner) Scan added in v0.0.98

func (it *GoInfoScanner) Scan() bool

type LinesScanner added in v0.0.152

type LinesScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

LinesScanner provides an iterator over a slice of strings, allowing for sequential access and the ability to un-scan (step back).

func NewLinesScanner added in v0.0.152

func NewLinesScanner(things []string) *LinesScanner

newLinesScanner initializes a new LinesScanner iterator with a slice of strings.

func (*LinesScanner) Err added in v0.0.152

func (it *LinesScanner) Err() error

func (*LinesScanner) Next added in v0.0.152

func (it *LinesScanner) Next() string

Next returns the current line from the scanner with leading and trailing whitespace removed.

func (*LinesScanner) NextRaw added in v0.0.152

func (it *LinesScanner) NextRaw() string

NextRaw returns the current line from the scanner without any modification.

func (*LinesScanner) Scan added in v0.0.152

func (it *LinesScanner) Scan() bool

Scan advances the iterator to the next line. It returns false if there are no more lines.

func (*LinesScanner) Text added in v0.0.152

func (it *LinesScanner) Text() string

alias as some scanners use Text()

func (*LinesScanner) UnScan added in v0.0.152

func (it *LinesScanner) UnScan() bool

UnScan moves the iterator back one line. It returns false if the iterator is already at the beginning.

type Repo added in v0.0.10

type Repo struct {
	Namespace            string     `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`                        // `autogenpb:unique` `autogenpb:sort` 	// this repo is 'go.wit.com/lib/protobuf/gitpb'
	FullPath             string     `protobuf:"bytes,2,opt,name=fullPath,proto3" json:"fullPath,omitempty"`                          // `autogenpb:unique` `autogenpb:sort` 	// the OS path to the .git directory: '/home/devel/golang.org/x/tools'
	MasterBranchName     string     `protobuf:"bytes,3,opt,name=masterBranchName,proto3" json:"masterBranchName,omitempty"`          // git 'main' or 'master' branch name
	DevelBranchName      string     `protobuf:"bytes,4,opt,name=develBranchName,proto3" json:"develBranchName,omitempty"`            // whatever the git 'devel' branch name is
	UserBranchName       string     `protobuf:"bytes,5,opt,name=userBranchName,proto3" json:"userBranchName,omitempty"`              // whatever your username branch is
	Dirty                bool       `protobuf:"varint,6,opt,name=dirty,proto3" json:"dirty,omitempty"`                               // if git says things have been changed
	URL                  string     `protobuf:"bytes,7,opt,name=URL,proto3" json:"URL,omitempty"`                                    // the URL
	Tags                 *GitTags   `protobuf:"bytes,8,opt,name=tags,proto3" json:"tags,omitempty"`                                  // known tags
	Times                *GitTimes  `protobuf:"bytes,9,opt,name=times,proto3" json:"times,omitempty"`                                // store all the mtime values here. these are temporary
	GoInfo               *GoInfo    `protobuf:"bytes,10,opt,name=goInfo,proto3" json:"goInfo,omitempty"`                             // put all the go specifcs here
	GoDeps               *GoDeps    `protobuf:"bytes,11,opt,name=goDeps,proto3" json:"goDeps,omitempty"`                             // what is in the go.sum file
	CurrentBranchName    string     `protobuf:"bytes,12,opt,name=currentBranchName,proto3" json:"currentBranchName,omitempty"`       // the branch currently checked out
	CurrentBranchVersion string     `protobuf:"bytes,13,opt,name=currentBranchVersion,proto3" json:"currentBranchVersion,omitempty"` // the branch currently checked out
	LastTag              string     `protobuf:"bytes,14,opt,name=lastTag,proto3" json:"lastTag,omitempty"`                           // the oldest tag
	TargetVersion        string     `protobuf:"bytes,15,opt,name=targetVersion,proto3" json:"targetVersion,omitempty"`               // useful during the package release process
	ReadOnly             bool       `protobuf:"varint,16,opt,name=readOnly,proto3" json:"readOnly,omitempty"`                        // tracks access to 'git push'
	Desc                 string     `protobuf:"bytes,17,opt,name=desc,proto3" json:"desc,omitempty"`                                 // what is this repo?
	StateChange          string     `protobuf:"bytes,18,opt,name=stateChange,proto3" json:"stateChange,omitempty"`                   // used for debugging tool logic
	MasterVersion        string     `protobuf:"bytes,19,opt,name=masterVersion,proto3" json:"masterVersion,omitempty"`               // just store this for now
	DevelVersion         string     `protobuf:"bytes,20,opt,name=develVersion,proto3" json:"develVersion,omitempty"`                 //
	UserVersion          string     `protobuf:"bytes,21,opt,name=userVersion,proto3" json:"userVersion,omitempty"`                   //
	DirtyList            []string   `protobuf:"bytes,22,rep,name=dirtyList,proto3" json:"dirtyList,omitempty"`                       // store the list from git status --porcelain
	State                string     `protobuf:"bytes,23,opt,name=state,proto3" json:"state,omitempty"`                               // status or state. useful for building tooling
	CurrentTag           *GitTag    `protobuf:"bytes,24,opt,name=currentTag,proto3" json:"currentTag,omitempty"`                     // used to examine repo branches
	GitConfig            *GitConfig `protobuf:"bytes,25,opt,name=gitConfig,proto3" json:"gitConfig,omitempty"`                       // protobuf of the current .git/config
	// contains filtered or unexported fields
}

func NewRepo added in v0.0.124

func NewRepo(fullpath string) (*Repo, error)

func (*Repo) ActualDevelHash added in v0.0.119

func (repo *Repo) ActualDevelHash() string

func (*Repo) ActualGetDevelHash added in v0.0.132

func (repo *Repo) ActualGetDevelHash() string

func (*Repo) ActualGetMasterHash added in v0.0.147

func (repo *Repo) ActualGetMasterHash() (string, string)

func (*Repo) ActualGetUserHash added in v0.0.132

func (repo *Repo) ActualGetUserHash() string

func (*Repo) AgeGoDep added in v0.0.10

func (repo *Repo) AgeGoDep() time.Duration

returns time.Duration since last scan of go.sum & go.mod

func (*Repo) AppendGoDep added in v0.0.10

func (repo *Repo) AppendGoDep(newP *GoDep) bool

enforces no duplicate package names

func (*Repo) AutogenRestore added in v0.0.28

func (repo *Repo) AutogenRestore(refname string) error

restores files from git metadata (notes)

func (*Repo) AutogenSave added in v0.0.28

func (repo *Repo) AutogenSave(files []string, refname string, del bool) error

files : a list of files to save ["go.mod", "go.sum"] refname : could be "master" or "v0.1.5" or "a605119c2cc41" del : true means empty out existing notes, otherwise append

func (*Repo) BranchAge added in v0.0.62

func (repo *Repo) BranchAge(branch string) time.Duration

not really accurate. temprorary until git Config() parsing is better

func (*Repo) BranchExists added in v0.0.20

func (repo *Repo) BranchExists(bName string) bool

func (*Repo) CheckBranches added in v0.0.45

func (repo *Repo) CheckBranches() string

actually, this is to attempt to verify absolutely everything is pushed upstream before doing a rm -rf ~/go/src TODO: revisit this code in the autotypist later

func (*Repo) CheckDirty added in v0.0.11

func (repo *Repo) CheckDirty() bool

returns true if the repo is dirty runs os.Exec('git') every time

func (*Repo) CheckDirtyVerbose added in v0.0.159

func (repo *Repo) CheckDirtyVerbose() (string, error)

returns true if the repo is dirty runs os.Exec('git') every time

func (*Repo) CheckoutDevel added in v0.0.20

func (repo *Repo) CheckoutDevel() bool

deprecate this

func (*Repo) CheckoutDevelError added in v0.0.142

func (repo *Repo) CheckoutDevelError() error

func (*Repo) CheckoutForce added in v0.0.159

func (r *Repo) CheckoutForce() error

if you manage to leave yourself on a branch that has been deleted, git porcelain will report the repo as having changes (aka 'dirty') then this code won't let you switch branches this bypasses those checks and moves you to a working branch. 1st 'devel', then 'master'

func (*Repo) CheckoutMaster added in v0.0.20

func (repo *Repo) CheckoutMaster() bool

deprecate this

func (*Repo) CheckoutMasterError added in v0.0.142

func (repo *Repo) CheckoutMasterError() error

func (*Repo) CheckoutUser added in v0.0.20

func (repo *Repo) CheckoutUser() error

func (*Repo) CompareHashes added in v0.0.163

func (r *Repo) CompareHashes(keepHash string, deleteHash string) ([]string, []string, []string, []string, error)

func (*Repo) ConstructGitDiffLog added in v0.0.55

func (repo *Repo) ConstructGitDiffLog(branch1, branch2 string) []string

only safe to run len() on STDOUT DO NOT TRY TO PARSE THIS EXCEPT HASH AS FIRST VALUE Intended to be human readable

func (*Repo) CountDiffObjects added in v0.0.67

func (repo *Repo) CountDiffObjects(branch1, branch2 string) (int, error)

count all objects only in branch1

func (*Repo) CountDiffObjectsNEWNEW added in v0.0.151

func (repo *Repo) CountDiffObjectsNEWNEW(branch1, branch2 string) ([]string, []string, error)

count all objects only in branch1

func (*Repo) CountDiffObjectsVerbose added in v0.0.151

func (repo *Repo) CountDiffObjectsVerbose(branch1, branch2 string) ([]string, error)

func (*Repo) DebianCurrentVersion added in v0.0.11

func (repo *Repo) DebianCurrentVersion(buildnum int) string

func (*Repo) DebianReleaseVersion added in v0.0.11

func (repo *Repo) DebianReleaseVersion() string

func (*Repo) DeleteGoDepByHash added in v0.0.10

func (repo *Repo) DeleteGoDepByHash(hash string)

func (*Repo) DeleteLocalBranch added in v0.0.151

func (repo *Repo) DeleteLocalBranch(branch string) ([]string, error)

deletes the devel local branch if it is a subset of the remote devel branch

func (*Repo) DeleteLocalDevelBranch added in v0.0.79

func (repo *Repo) DeleteLocalDevelBranch() error

deletes the devel local branch if it is a subset of the remote devel branch

func (*Repo) Descriptor deprecated added in v0.0.10

func (*Repo) Descriptor() ([]byte, []int)

Deprecated: Use Repo.ProtoReflect.Descriptor instead.

func (*Repo) DidRepoChange added in v0.0.34

func (repo *Repo) DidRepoChange() error

func (*Repo) DidRepoChangeDir added in v0.0.145

func (repo *Repo) DidRepoChangeDir() error

also checks .git which seems to change *a lot* this might work immediately after git checkout

func (*Repo) ExamineBranches added in v0.0.54

func (repo *Repo) ExamineBranches() *GitTag

func (*Repo) Exists added in v0.0.10

func (repo *Repo) Exists(filename string) bool

func (*Repo) ExistsUserBranchRemote added in v0.0.65

func (repo *Repo) ExistsUserBranchRemote() bool

returns true if 'git pull' will work

func (*Repo) FindGoDepByPath added in v0.0.10

func (repo *Repo) FindGoDepByPath(gopath string) *GoDep

find a dependancy by the go path

func (*Repo) FindLastTag added in v0.0.80

func (repo *Repo) FindLastTag() string

finds the newest tag. used for deciding if master needs to be published

func (*Repo) FindPatchIdByHash added in v0.0.152

func (repo *Repo) FindPatchIdByHash(hash string) (string, error)

forged patch: "working on ping pong" The --stable flag is an important detail. When you use it, git patch-id outputs two hashes: <stable_patch_id> <unstable_patch_id>

func (*Repo) FindPatchIdFromGitAm added in v0.0.152

func (repo *Repo) FindPatchIdFromGitAm(gitam []byte) (string, string, error)

func (*Repo) FormatJSON added in v0.0.10

func (v *Repo) FormatJSON() string

human readable JSON

func (*Repo) FormatTEXT added in v0.0.10

func (v *Repo) FormatTEXT() string

apparently this isn't stable, but it's awesomely better https://protobuf.dev/reference/go/faq/#unstable-text it's brilliant for config files!

func (*Repo) GetBranchDifferences added in v0.0.116

func (repo *Repo) GetBranchDifferences(to string, from string) []string

lookup a hash from a tag with 'git rev-list'

func (*Repo) GetBranches added in v0.0.45

func (repo *Repo) GetBranches() []string

func (*Repo) GetCurrentBranchName added in v0.0.11

func (x *Repo) GetCurrentBranchName() string

func (*Repo) GetCurrentBranchVersion added in v0.0.11

func (x *Repo) GetCurrentBranchVersion() string

func (*Repo) GetCurrentTag added in v0.0.54

func (x *Repo) GetCurrentTag() *GitTag

func (*Repo) GetCurrentVersion added in v0.0.33

func (repo *Repo) GetCurrentVersion() string

this is used often. probably move everything to this returns things like v0.2.2 v0.22.39-1-g2141737 v0.23-dirty mystuff

func (*Repo) GetDesc added in v0.0.20

func (x *Repo) GetDesc() string

func (*Repo) GetDevelBranchName added in v0.0.10

func (x *Repo) GetDevelBranchName() string

func (*Repo) GetDevelVersion added in v0.0.14

func (x *Repo) GetDevelVersion() string

func (*Repo) GetDirty added in v0.0.11

func (x *Repo) GetDirty() bool

func (*Repo) GetDirtyList added in v0.0.45

func (x *Repo) GetDirtyList() []string

func (*Repo) GetFullPath added in v0.0.10

func (x *Repo) GetFullPath() string

func (*Repo) GetGitConfig added in v0.0.57

func (x *Repo) GetGitConfig() *GitConfig

func (*Repo) GetGoDeps added in v0.0.10

func (x *Repo) GetGoDeps() *GoDeps

func (*Repo) GetGoInfo added in v0.0.34

func (x *Repo) GetGoInfo() *GoInfo

func (*Repo) GetGoPath added in v0.0.10

func (repo *Repo) GetGoPath() string

func (*Repo) GetGoPrimitive added in v0.0.10

func (repo *Repo) GetGoPrimitive() bool

func (*Repo) GetHashName added in v0.0.66

func (repo *Repo) GetHashName(h string) (string, error)

git describe --tags e548b0fb6d0d14cdfb693850d592419f247dc2b1 v0.22.61-15-gbab84d7

func (*Repo) GetLastTag added in v0.0.10

func (x *Repo) GetLastTag() string

func (*Repo) GetLastTagVersion added in v0.0.11

func (repo *Repo) GetLastTagVersion() string

this should get the most recent tag

func (*Repo) GetLocalBranches added in v0.0.66

func (repo *Repo) GetLocalBranches() []string

func (*Repo) GetLocalDevelRef added in v0.0.151

func (r *Repo) GetLocalDevelRef() *GitTag

func (*Repo) GetLocalHash added in v0.0.83

func (repo *Repo) GetLocalHash(brname string) string

func (*Repo) GetLocalMasterRef added in v0.0.151

func (r *Repo) GetLocalMasterRef() *GitTag

func (*Repo) GetLocalUserRef added in v0.0.151

func (r *Repo) GetLocalUserRef() *GitTag

func (*Repo) GetMasterBranchName added in v0.0.10

func (x *Repo) GetMasterBranchName() string

func (*Repo) GetMasterVersion added in v0.0.14

func (x *Repo) GetMasterVersion() string

func (*Repo) GetNamespace added in v0.0.101

func (x *Repo) GetNamespace() string

func (*Repo) GetProtoFiles added in v0.0.17

func (repo *Repo) GetProtoFiles() ([]string, error)

func (*Repo) GetReadOnly added in v0.0.20

func (x *Repo) GetReadOnly() bool

func (*Repo) GetRemoteBranches added in v0.0.66

func (repo *Repo) GetRemoteBranches() []string

func (*Repo) GetRemoteHash added in v0.0.83

func (repo *Repo) GetRemoteHash(brname string) string

func (*Repo) GetRemoteTag added in v0.0.141

func (repo *Repo) GetRemoteTag(brname string) *GitTag

func (*Repo) GetRepoType added in v0.0.34

func (repo *Repo) GetRepoType() string

TODO: this needs to be redone in a smarter way to identify which repos have things to build in them

func (*Repo) GetState added in v0.0.45

func (x *Repo) GetState() string

func (*Repo) GetStateChange added in v0.0.34

func (x *Repo) GetStateChange() string

func (*Repo) GetTagHash added in v0.0.67

func (repo *Repo) GetTagHash(t string) string

lookup a hash from a tag with 'git rev-list'

func (*Repo) GetTags added in v0.0.10

func (x *Repo) GetTags() *GitTags

func (*Repo) GetTargetVersion added in v0.0.19

func (x *Repo) GetTargetVersion() string

func (*Repo) GetTimes added in v0.0.34

func (x *Repo) GetTimes() *GitTimes

func (*Repo) GetURL added in v0.0.20

func (x *Repo) GetURL() string

func (*Repo) GetUserBranchName added in v0.0.10

func (x *Repo) GetUserBranchName() string

func (*Repo) GetUserVersion added in v0.0.14

func (x *Repo) GetUserVersion() string

func (*Repo) GitChanged added in v0.0.32

func (repo *Repo) GitChanged() bool

func (*Repo) GitCommit added in v0.0.141

func (repo *Repo) GitCommit() error

func (*Repo) GitDeleteOthers added in v0.0.156

func (repo *Repo) GitDeleteOthers() ([]string, error)

returns the list of files that can be deleted show untracked files git ls-files --others git ls-files --others --exclude-standard git ls-files --others --ignored --exclude-standard

func (*Repo) GitPull added in v0.0.20

func (repo *Repo) GitPull() (*cmd.Status, error)

func (*Repo) GitPullAge added in v0.0.32

func (repo *Repo) GitPullAge() time.Duration

func (*Repo) GoDepsLen added in v0.0.14

func (repo *Repo) GoDepsLen() int

func (*Repo) GoSumAge added in v0.0.28

func (repo *Repo) GoSumAge() (time.Duration, error)

func (*Repo) GoSumFromPkgDir added in v0.0.72

func (repo *Repo) GoSumFromPkgDir() (*GoDeps, error)

func (*Repo) GoSumFromRepo added in v0.0.72

func (repo *Repo) GoSumFromRepo() (*GoDeps, error)

func (*Repo) HasChanged added in v0.0.132

func (repo *Repo) HasChanged() error

returns true based on os.Stat() only checks seems to kinda work ok. goal is to avoid os.Exec() here for speed this might be the 1 place where libgit2 would be a good idea

func (*Repo) IfRefExists added in v0.0.150

func (repo *Repo) IfRefExists(refname string) *GitTag

func (*Repo) IncrementTargetMinor added in v0.0.28

func (repo *Repo) IncrementTargetMinor()

changes the target minor. v0.1.3 becomes v0.2.0

func (*Repo) IncrementTargetRevision added in v0.0.28

func (repo *Repo) IncrementTargetRevision()

changes the target revision. v0.1.3 becomes v0.1.4

func (*Repo) IsBinary added in v0.0.76

func (r *Repo) IsBinary() bool

does this repo build a binary?

func (*Repo) IsBranch added in v0.0.10

func (repo *Repo) IsBranch(findname string) bool

find a branch namm will find "master" or "devel" will also find "v0.1.1" or will find "patches-from-foo" will return *any* match on any git branch because it doesn't matter much here yet eventually this will be worked out by forge in some future code that hasn't been made yet

func (*Repo) IsBranchLocal added in v0.0.151

func (repo *Repo) IsBranchLocal(findname string) *GitTag

func (*Repo) IsBranchRemote added in v0.0.65

func (repo *Repo) IsBranchRemote(brname string) bool

this is the correct way. uses 'git show-ref'

func (*Repo) IsDevelBranch added in v0.0.45

func (repo *Repo) IsDevelBranch() bool

func (*Repo) IsDevelRemote added in v0.0.72

func (repo *Repo) IsDevelRemote() bool

this is the correct way. uses 'git show-ref'

func (*Repo) IsDirectory added in v0.0.12

func (repo *Repo) IsDirectory() bool

func (*Repo) IsDirty added in v0.0.11

func (repo *Repo) IsDirty() bool

just return the current value

func (*Repo) IsGitDirectory added in v0.0.28

func (repo *Repo) IsGitDirectory() bool

func (*Repo) IsGoPlugin added in v0.0.77

func (r *Repo) IsGoPlugin() bool

does this repo build a binary?

func (*Repo) IsLocalBranch added in v0.0.28

func (repo *Repo) IsLocalBranch(findname string) bool

func (*Repo) IsLocalBranchVerbose added in v0.0.159

func (repo *Repo) IsLocalBranchVerbose(findname string) bool

func (*Repo) IsMasterBranch added in v0.0.43

func (repo *Repo) IsMasterBranch() bool

func (*Repo) IsProtobuf added in v0.0.10

func (repo *Repo) IsProtobuf() bool

func (*Repo) IsRemoteBranch added in v0.0.150

func (repo *Repo) IsRemoteBranch(findname string) bool

func (*Repo) IsUserBranch added in v0.0.43

func (repo *Repo) IsUserBranch() bool

func (*Repo) IsValidDir added in v0.0.34

func (repo *Repo) IsValidDir() bool

func (*Repo) LastGitPull added in v0.0.28

func (repo *Repo) LastGitPull() (time.Time, error)

func (*Repo) LoadStats added in v0.0.169

func (r *Repo) LoadStats() (*Stats, error)

func (*Repo) MakeLocalDevelBranch added in v0.0.105

func (repo *Repo) MakeLocalDevelBranch() (*cmd.Status, error)

makes a local branch based off of the master branch (unless a remote devel branch exists. then it uses that)

func (*Repo) Marshal added in v0.0.10

func (v *Repo) Marshal() ([]byte, error)

marshal to wire. This is called winning.

func (*Repo) MarshalJSON added in v0.0.10

func (v *Repo) MarshalJSON() ([]byte, error)

marshal json

func (*Repo) MergeToDevel added in v0.0.69

func (r *Repo) MergeToDevel() (*cmd.Status, error)

func (*Repo) MergeToMaster added in v0.0.69

func (r *Repo) MergeToMaster() (*cmd.Status, error)

func (*Repo) Mtime added in v0.0.34

func (repo *Repo) Mtime(fname string) *time.Time

func (*Repo) NewCompareRef added in v0.0.151

func (r *Repo) NewCompareRef(t *GitTag) *RepoTag

func (*Repo) NewCompareTag added in v0.0.151

func (r *Repo) NewCompareTag(refname string) *RepoTag

func (*Repo) NewestAge added in v0.0.29

func (repo *Repo) NewestAge() time.Duration

biased code that gives out newer tag dates even if the code hasn't been patched

func (*Repo) NewestAgeVerbose added in v0.0.52

func (repo *Repo) NewestAgeVerbose() time.Duration

func (*Repo) NewestTag added in v0.0.20

func (repo *Repo) NewestTag() *GitTag

func (*Repo) NewestTime added in v0.0.83

func (repo *Repo) NewestTime() time.Time

func (*Repo) NoteChange added in v0.0.11

func (repo *Repo) NoteChange(s string)

func (*Repo) ParseGoSum added in v0.0.18

func (repo *Repo) ParseGoSum() bool

reads and parses the go.sum file into a protobuf struct this function isn't supposed to change anything, just parse the existing files

func (*Repo) ProtoMessage added in v0.0.10

func (*Repo) ProtoMessage()

func (*Repo) ProtoReflect added in v0.0.10

func (x *Repo) ProtoReflect() protoreflect.Message

func (*Repo) ReadFile added in v0.0.28

func (repo *Repo) ReadFile(fname string) ([]byte, error)

func (*Repo) ReloadCheck added in v0.0.59

func (repo *Repo) ReloadCheck() error

does a fast check with os.Stat() if the mtimes changed, does a full repo.ReloadForce()

func (*Repo) ReloadForce added in v0.0.132

func (repo *Repo) ReloadForce() error

TODO: clean this up more, but it is working now more or less

func (*Repo) RepoIgnoresGoMod added in v0.0.30

func (repo *Repo) RepoIgnoresGoMod() error

is it a good idea to run go-mod-clean in this repo? for now, check if this repo should be ignored TODO: go.mod and go.sum should be moved to git tag metadata

func (*Repo) Reset added in v0.0.10

func (x *Repo) Reset()

func (*Repo) RevertMasterToDevel added in v0.0.34

func (repo *Repo) RevertMasterToDevel() bool

reverts master to devel used in the unwind process of making GUI releases

func (*Repo) Run added in v0.0.10

func (repo *Repo) Run(cmd []string) cmd.Status

execute something with the working directory set to the FullPath

func (*Repo) RunAll added in v0.0.34

func (repo *Repo) RunAll(all [][]string) bool

func (*Repo) RunEcho added in v0.0.28

func (repo *Repo) RunEcho(cmd []string) cmd.Status

func (*Repo) RunPipe added in v0.0.132

func (repo *Repo) RunPipe(cmd1 []string, cmd2 []string) cmd.Status

func (*Repo) RunQuiet added in v0.0.10

func (repo *Repo) RunQuiet(cmd []string) (*cmd.Status, error)

func (*Repo) RunRealtime added in v0.0.17

func (repo *Repo) RunRealtime(cmd []string) cmd.Status

func (*Repo) RunRealtimeVerbose added in v0.0.45

func (repo *Repo) RunRealtimeVerbose(cmd []string) cmd.Status

func (*Repo) RunStrict added in v0.0.28

func (repo *Repo) RunStrict(cmd []string) (*cmd.Status, error)

func (*Repo) RunStrictAll added in v0.0.44

func (repo *Repo) RunStrictAll(all [][]string) (*cmd.Status, error)

func (*Repo) RunVerbose added in v0.0.55

func (repo *Repo) RunVerbose(cmd []string) error

func (*Repo) RunVerboseOnError added in v0.0.55

func (repo *Repo) RunVerboseOnError(cmd []string) (*cmd.Status, error)

func (*Repo) RunVerboseWithError added in v0.0.156

func (repo *Repo) RunVerboseWithError(cmd []string) (*cmd.Status, error)

func (*Repo) SafeDelete added in v0.0.163

func (repo *Repo) SafeDelete(deleteHash string, keepHash string) error

It's safe to remove a tag if the deleteHash is completely contained in the keepHash This determines the git PatchId's for each hash and finds out if they are there brute force so it can be slow, but it worth it because it works (todo: detect rare duplicate patchId's)

func (*Repo) ScanProtobuf added in v0.0.156

func (repo *Repo) ScanProtobuf() (bool, []string, error)

This returns the list of autogenerated protobuf files it assumes any file *.pb.go is autogenerated

this are made from protoc / proto-gen-go these packages also use go.wit.com/apps/autogenpb

errors() if a .proto file does not have an autogenerated .pb.go file

func (*Repo) SetDevelBranchName added in v0.0.10

func (repo *Repo) SetDevelBranchName(bname string)

func (*Repo) SetGoPrimitive added in v0.0.34

func (repo *Repo) SetGoPrimitive(b bool)

func (*Repo) SetMasterBranchName added in v0.0.10

func (repo *Repo) SetMasterBranchName(s string)

func (*Repo) SetReadOnly added in v0.0.20

func (repo *Repo) SetReadOnly(b bool)

func (*Repo) SetTargetVersion added in v0.0.19

func (repo *Repo) SetTargetVersion(target string)

func (*Repo) SetUserBranchName added in v0.0.10

func (repo *Repo) SetUserBranchName(bname string)

func (*Repo) SmartSetState added in v0.0.159

func (repo *Repo) SmartSetState(newstate string) bool

func (*Repo) Stats added in v0.0.163

func (r *Repo) Stats() *Stats

func (*Repo) String added in v0.0.10

func (x *Repo) String() string

func (*Repo) Unmarshal added in v0.0.10

func (v *Repo) Unmarshal(data []byte) error

unmarshal from wire. You have won.

func (*Repo) UnmarshalJSON added in v0.0.10

func (v *Repo) UnmarshalJSON(data []byte) error

unmarshal json

func (*Repo) UnmarshalTEXT added in v0.0.10

func (v *Repo) UnmarshalTEXT(data []byte) error

unmarshalTEXT. This reads the .text config file back in after the user edits it

func (*Repo) ValidGoSum added in v0.0.28

func (repo *Repo) ValidGoSum() error

checks to see if the go.sum and go.mod files exist also check for a match with the repo.pb GoPrimitive bool todo: check mtime

func (*Repo) ValidateUTF8 added in v0.0.110

func (repo *Repo) ValidateUTF8() error

todo: move this to Marshal() functions automatically in autogenpb?

func (*Repo) VerifyRemoteAndLocalBranches added in v0.0.123

func (repo *Repo) VerifyRemoteAndLocalBranches(bname string) bool

used in "normal" mode check

type RepoFunc added in v0.0.144

type RepoFunc struct {
	Custom func(*Repo)
	Width  int
	Attr   *guipb.ColAttr
	Header *guipb.Widget
	// contains filtered or unexported fields
}

func (*RepoFunc) SetTitle added in v0.0.144

func (sf *RepoFunc) SetTitle(title string)

type RepoScanner added in v0.0.98

type RepoScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*RepoScanner) Next added in v0.0.98

func (it *RepoScanner) Next() *Repo

Next() returns the next thing in the array

func (*RepoScanner) Scan added in v0.0.98

func (it *RepoScanner) Scan() bool

type RepoTag added in v0.0.151

type RepoTag struct {
	// contains filtered or unexported fields
}

func (*RepoTag) CompareBranch added in v0.0.151

func (t1 *RepoTag) CompareBranch(t2 *RepoTag) ([]string, []string, []string, []string, error)

func (*RepoTag) GetRef added in v0.0.151

func (rt *RepoTag) GetRef() *GitTag

func (*RepoTag) GetRefname added in v0.0.151

func (rt *RepoTag) GetRefname() string

func (*RepoTag) GreaterThan added in v0.0.151

func (t1 *RepoTag) GreaterThan(t2 *RepoTag) []string

if t1 is user branch, and t2 is devel branch, true if 0

type Repos added in v0.0.10

type Repos struct {
	Uuid        string                 `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`                // `autogenpb:uuid:8daaeba1-fb1f-4762-ae6e-95a55d352673`
	Version     string                 `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`          // `autogenpb:version:v4`
	Repos       []*Repo                `protobuf:"bytes,3,rep,name=repos,proto3" json:"repos,omitempty"`              // `autogenpb:append`   // generate AppendUnique() function for this
	HasFullScan bool                   `protobuf:"varint,4,opt,name=hasFullScan,proto3" json:"hasFullScan,omitempty"` // a full repo scan has been saved to disk
	FullScan    *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=fullScan,proto3" json:"fullScan,omitempty"`        // mtime of the last full scan saved to disk
	Filename    string                 `protobuf:"bytes,6,opt,name=filename,proto3" json:"filename,omitempty"`        // `autogenpb:save` -- this enables autogenerated pb.Load() and pb.Save()
	// contains filtered or unexported fields
}

func NewRepos added in v0.0.54

func NewRepos() *Repos

func (*Repos) ActualSort added in v0.0.156

func (pb *Repos) ActualSort()

func (*Repos) All added in v0.0.10

func (x *Repos) All() *RepoScanner

func (*Repos) Append added in v0.0.10

func (x *Repos) Append(y *Repo)

a Append() shortcut (that does Clone() with a mutex) notsure if it really works

func (*Repos) AppendByFullPath added in v0.0.50

func (x *Repos) AppendByFullPath(y *Repo) bool

func (*Repos) AppendByNamespace added in v0.0.103

func (x *Repos) AppendByNamespace(y *Repo) bool

func (*Repos) CheckPorcelain added in v0.0.159

func (all *Repos) CheckPorcelain() (string, error)

func (*Repos) Clone added in v0.0.159

func (x *Repos) Clone(y *Repo) *Repo

a Clone() shortcut (with a mutex). notsure if it really works

func (*Repos) CloneByFullPath added in v0.0.159

func (x *Repos) CloneByFullPath(y *Repo) bool

func (*Repos) CloneByNamespace added in v0.0.159

func (x *Repos) CloneByNamespace(y *Repo) bool

func (*Repos) ConfigLoad added in v0.0.12

func (all *Repos) ConfigLoad(cfgname string) error

load the repos.pb file.

func (*Repos) ConfigSave added in v0.0.12

func (all *Repos) ConfigSave(fname string) error

write the repos.pb file

func (*Repos) Delete added in v0.0.59

func (x *Repos) Delete(y *Repo) bool

func (*Repos) DeleteByFullPath added in v0.0.33

func (x *Repos) DeleteByFullPath(s string) bool

func (*Repos) DeleteByNamespace added in v0.0.103

func (x *Repos) DeleteByNamespace(s string) bool

func (*Repos) Descriptor deprecated added in v0.0.10

func (*Repos) Descriptor() ([]byte, []int)

Deprecated: Use Repos.ProtoReflect.Descriptor instead.

func (*Repos) FindByFullPath added in v0.0.33

func (x *Repos) FindByFullPath(s string) *Repo

lookup a Repos by the FullPath

func (*Repos) FindByNamespace added in v0.0.103

func (x *Repos) FindByNamespace(s string) *Repo

lookup a Repos by the Namespace

func (*Repos) FormatJSON added in v0.0.10

func (v *Repos) FormatJSON() string

human readable JSON

func (*Repos) FormatTEXT added in v0.0.10

func (v *Repos) FormatTEXT() string

apparently this isn't stable, but it's awesomely better https://protobuf.dev/reference/go/faq/#unstable-text it's brilliant for config files!

func (*Repos) GetFilename added in v0.0.152

func (x *Repos) GetFilename() string

func (*Repos) GetFullScan added in v0.0.68

func (x *Repos) GetFullScan() *timestamppb.Timestamp

func (*Repos) GetHasFullScan added in v0.0.68

func (x *Repos) GetHasFullScan() bool

func (*Repos) GetRepos added in v0.0.10

func (x *Repos) GetRepos() []*Repo

func (*Repos) GetUuid added in v0.0.10

func (x *Repos) GetUuid() string

func (*Repos) GetVersion added in v0.0.10

func (x *Repos) GetVersion() string

func (*Repos) HttpPost added in v0.0.119

func (p *Repos) HttpPost(baseURL string, route string) (*Repos, *httppb.HttpRequest, error)

Marshal protobuf, then http POST, then Unmarshal() to protobuf again

func (*Repos) InsertByFullPath added in v0.0.96

func (x *Repos) InsertByFullPath(y string) *Repo

returns a Repo if FullPath matches, otherwise create

func (*Repos) InsertByNamespace added in v0.0.103

func (x *Repos) InsertByNamespace(y string) *Repo

returns a Repo if Namespace matches, otherwise create

func (*Repos) IterAll added in v0.0.96

func (x *Repos) IterAll() iter.Seq[*Repo]

Iterate 'for x := range' syntax using the awesome golang 1.24 'iter'

func (*Repos) IterByFullPath added in v0.0.96

func (x *Repos) IterByFullPath() iter.Seq[*Repo]

'for x := range' syntax using the awesome golang 1.24 'iter'

func (*Repos) IterByNamespace added in v0.0.101

func (x *Repos) IterByNamespace() iter.Seq[*Repo]

'for x := range' syntax using the awesome golang 1.24 'iter'

func (*Repos) Len added in v0.0.10

func (x *Repos) Len() int

func (*Repos) Load added in v0.0.152

func (pb *Repos) Load() error

func (*Repos) MakeDefaultTB added in v0.0.159

func (pb *Repos) MakeDefaultTB() *ReposTable

func (*Repos) MakeGowebdTable added in v0.0.169

func (pb *Repos) MakeGowebdTable(name string) *ReposTable

func (*Repos) Marshal added in v0.0.10

func (v *Repos) Marshal() ([]byte, error)

marshal to wire. This is called winning.

func (*Repos) MarshalJSON added in v0.0.10

func (v *Repos) MarshalJSON() ([]byte, error)

marshal json

func (*Repos) NewGoRepo added in v0.0.34

func (all *Repos) NewGoRepo(fullpath string, gopath string) (*Repo, error)

scans in a new git repo. If it detects the repo is a golang project, then it parses the go.mod/go.sum files TODO: try adding python, rails, perl, rust, other language things? I probably will never have time to try that, but I'd take patches for anyone that might see this note and feel so inclined. todo: use Repos.Lock() ?

func (*Repos) NewRepo added in v0.0.107

func (all *Repos) NewRepo(fullpath string, namespace string) (*Repo, error)

func (*Repos) NewTable added in v0.0.81

func (x *Repos) NewTable(title string) *ReposTable

func (*Repos) PrintDefaultTB added in v0.0.159

func (pb *Repos) PrintDefaultTB() string

func (*Repos) PrintGowebdTable added in v0.0.169

func (pb *Repos) PrintGowebdTable() string

func (*Repos) PrintMissingTable added in v0.0.152

func (pb *Repos) PrintMissingTable()

rm this is junk

func (*Repos) ProtoMessage added in v0.0.10

func (*Repos) ProtoMessage()

func (*Repos) ProtoReflect added in v0.0.10

func (x *Repos) ProtoReflect() protoreflect.Message

func (*Repos) Reset added in v0.0.10

func (x *Repos) Reset()

func (*Repos) RillGitPull added in v0.0.24

func (all *Repos) RillGitPull(part1 int, part2 int) map[*Repo]*cmd.Status

rill is awesome. long live rill attempt scan with rill

func (*Repos) Save added in v0.0.152

func (pb *Repos) Save() error

func (*Repos) SaveSafe added in v0.0.162

func (pb *Repos) SaveSafe() error

func (*Repos) SaveValidate added in v0.0.152

func (pb *Repos) SaveValidate(fname string) error

bypass name check "repos.pb"

func (*Repos) SaveVerbose added in v0.0.169

func (pb *Repos) SaveVerbose() error

func (*Repos) ScanAllMtimesVerbose added in v0.0.159

func (all *Repos) ScanAllMtimesVerbose() (string, error)

func (*Repos) SendPB added in v0.0.103

func (r *Repos) SendPB(w http.ResponseWriter) error

func (*Repos) SendReply added in v0.0.119

func (p *Repos) SendReply(w http.ResponseWriter, reqPB *httppb.HttpRequest) error

func (*Repos) SmartSave added in v0.0.159

func (all *Repos) SmartSave() error

func (*Repos) SortByFullPath added in v0.0.33

func (x *Repos) SortByFullPath() *RepoScanner

func (*Repos) SortByNamespace added in v0.0.101

func (x *Repos) SortByNamespace() *RepoScanner

func (*Repos) SortFullPath added in v0.0.156

func (pb *Repos) SortFullPath()

func (*Repos) SortNamespace added in v0.0.156

func (pb *Repos) SortNamespace()

func (*Repos) String added in v0.0.10

func (x *Repos) String() string

func (*Repos) SubmitReposPB added in v0.0.102

func (r *Repos) SubmitReposPB(url string) (*Repos, error)

func (*Repos) Unmarshal added in v0.0.10

func (v *Repos) Unmarshal(data []byte) error

unmarshal from wire. You have won.

func (*Repos) UnmarshalJSON added in v0.0.10

func (v *Repos) UnmarshalJSON(data []byte) error

unmarshal json

func (*Repos) UnmarshalTEXT added in v0.0.10

func (v *Repos) UnmarshalTEXT(data []byte) error

unmarshalTEXT. This reads the .text config file back in after the user edits it

type ReposScanner added in v0.0.98

type ReposScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*ReposScanner) Next added in v0.0.98

func (it *ReposScanner) Next() *Repos

Next() returns the next thing in the array

func (*ReposScanner) Scan added in v0.0.98

func (it *ReposScanner) Scan() bool

type ReposTable added in v0.0.81

type ReposTable struct {
	Funcs      []*RepoFunc
	CustomFunc func(*Repo)
	// contains filtered or unexported fields
}

func (*ReposTable) AddButtonFunc added in v0.0.91

func (t *ReposTable) AddButtonFunc(title string, f func(*Repo) string) *RepoFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*ReposTable) AddCurrentBranchName added in v0.0.81

func (t *ReposTable) AddCurrentBranchName() *RepoFunc

func (*ReposTable) AddCurrentBranchVersion added in v0.0.81

func (t *ReposTable) AddCurrentBranchVersion() *RepoFunc

func (*ReposTable) AddDesc added in v0.0.81

func (t *ReposTable) AddDesc() *RepoFunc

func (*ReposTable) AddDevelBranchName added in v0.0.81

func (t *ReposTable) AddDevelBranchName() *RepoFunc

func (*ReposTable) AddDevelVersion added in v0.0.81

func (t *ReposTable) AddDevelVersion() *RepoFunc

func (*ReposTable) AddFullPath added in v0.0.81

func (t *ReposTable) AddFullPath() *RepoFunc

func (*ReposTable) AddIntFunc added in v0.0.81

func (t *ReposTable) AddIntFunc(title string, f func(*Repo) int) *RepoFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*ReposTable) AddLastTag added in v0.0.81

func (t *ReposTable) AddLastTag() *RepoFunc

func (*ReposTable) AddMasterBranchName added in v0.0.81

func (t *ReposTable) AddMasterBranchName() *RepoFunc

func (*ReposTable) AddMasterVersion added in v0.0.81

func (t *ReposTable) AddMasterVersion() *RepoFunc

func (*ReposTable) AddNamespace added in v0.0.101

func (t *ReposTable) AddNamespace() *RepoFunc

func (*ReposTable) AddState added in v0.0.81

func (t *ReposTable) AddState() *RepoFunc

func (*ReposTable) AddStateChange added in v0.0.81

func (t *ReposTable) AddStateChange() *RepoFunc

func (*ReposTable) AddStringFunc added in v0.0.81

func (t *ReposTable) AddStringFunc(title string, f func(*Repo) string) *RepoFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*ReposTable) AddTargetVersion added in v0.0.81

func (t *ReposTable) AddTargetVersion() *RepoFunc

func (*ReposTable) AddTimeFunc added in v0.0.81

func (t *ReposTable) AddTimeFunc(title string, f func(*Repo) time.Time) *RepoFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*ReposTable) AddURL added in v0.0.81

func (t *ReposTable) AddURL() *RepoFunc

func (*ReposTable) AddUserBranchName added in v0.0.81

func (t *ReposTable) AddUserBranchName() *RepoFunc

func (*ReposTable) AddUserVersion added in v0.0.81

func (t *ReposTable) AddUserVersion() *RepoFunc

func (*ReposTable) Custom added in v0.0.91

func (mt *ReposTable) Custom(f func(*Repo))

func (*ReposTable) Delete added in v0.0.89

func (mt *ReposTable) Delete()

func (*ReposTable) GetUuid added in v0.0.90

func (mt *ReposTable) GetUuid() string

func (*ReposTable) MakeTable added in v0.0.81

func (mt *ReposTable) MakeTable()

func (*ReposTable) NewUuid added in v0.0.89

func (mt *ReposTable) NewUuid()

func (*ReposTable) PrintTable added in v0.0.137

func (t *ReposTable) PrintTable()

formats & prints the table as text to Stdout. a real timesaver!

func (*ReposTable) SetParent added in v0.0.84

func (mt *ReposTable) SetParent(p *gui.Node)

func (*ReposTable) ShowTable added in v0.0.81

func (mt *ReposTable) ShowTable()

type Stat added in v0.0.163

type Stat struct {
	PatchId string                 `protobuf:"bytes,1,opt,name=patchId,proto3" json:"patchId,omitempty"`                    // `autogenpb:unique` `autogenpb:sort`
	Hash    string                 `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`                          // `autogenpb:unique` // git hash
	Ctime   *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=ctime,proto3" json:"ctime,omitempty"`                        // `autogenpb:unique` `autogenpb:sort`
	Name    string                 `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`                          //
	Remote  string                 `protobuf:"bytes,5,opt,name=remote,proto3" json:"remote,omitempty"`                      // blank unless REMOTE
	Type    Stat_RefType           `protobuf:"varint,6,opt,name=type,proto3,enum=gitpb.Stat_RefType" json:"type,omitempty"` // is set by git as the master branch
	Subject string                 `protobuf:"bytes,7,opt,name=subject,proto3" json:"subject,omitempty"`                    // git tag subject
	// contains filtered or unexported fields
}

func (*Stat) Descriptor deprecated added in v0.0.163

func (*Stat) Descriptor() ([]byte, []int)

Deprecated: Use Stat.ProtoReflect.Descriptor instead.

func (*Stat) GetCtime added in v0.0.169

func (x *Stat) GetCtime() *timestamppb.Timestamp

func (*Stat) GetHash added in v0.0.163

func (x *Stat) GetHash() string

func (*Stat) GetName added in v0.0.163

func (x *Stat) GetName() string

func (*Stat) GetPatchId added in v0.0.163

func (x *Stat) GetPatchId() string

func (*Stat) GetRemote added in v0.0.163

func (x *Stat) GetRemote() string

func (*Stat) GetSubject added in v0.0.163

func (x *Stat) GetSubject() string

func (*Stat) GetType added in v0.0.163

func (x *Stat) GetType() Stat_RefType

func (*Stat) ProtoMessage added in v0.0.163

func (*Stat) ProtoMessage()

func (*Stat) ProtoReflect added in v0.0.163

func (x *Stat) ProtoReflect() protoreflect.Message

func (*Stat) Reset added in v0.0.163

func (x *Stat) Reset()

func (*Stat) String added in v0.0.163

func (x *Stat) String() string

type StatFunc added in v0.0.163

type StatFunc struct {
	Custom func(*Stat)
	Width  int
	Attr   *guipb.ColAttr
	Header *guipb.Widget
	// contains filtered or unexported fields
}

func (*StatFunc) SetTitle added in v0.0.163

func (sf *StatFunc) SetTitle(title string)

type StatScanner added in v0.0.163

type StatScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*StatScanner) Next added in v0.0.163

func (it *StatScanner) Next() *Stat

Next() returns the next thing in the array

func (*StatScanner) Scan added in v0.0.163

func (it *StatScanner) Scan() bool

type Stat_RefType added in v0.0.163

type Stat_RefType int32
const (
	Stat_UNKNOWN Stat_RefType = 0
	Stat_LOCAL   Stat_RefType = 1
	Stat_REMOTE  Stat_RefType = 2
	Stat_TAG     Stat_RefType = 3
)

func (Stat_RefType) Descriptor added in v0.0.163

func (Stat_RefType) Enum added in v0.0.163

func (x Stat_RefType) Enum() *Stat_RefType

func (Stat_RefType) EnumDescriptor deprecated added in v0.0.163

func (Stat_RefType) EnumDescriptor() ([]byte, []int)

Deprecated: Use Stat_RefType.Descriptor instead.

func (Stat_RefType) Number added in v0.0.163

func (Stat_RefType) String added in v0.0.163

func (x Stat_RefType) String() string

func (Stat_RefType) Type added in v0.0.163

type Stats added in v0.0.163

type Stats struct {
	Uuid     string                 `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`       // `autogenpb:uuid:ba236558-f8a1-4c47-a14a-8856a24d3f72`
	Version  string                 `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // `autogenpb:version:v0.0.1`
	Stats    []*Stat                `protobuf:"bytes,3,rep,name=stats,proto3" json:"stats,omitempty"`
	Filename string                 `protobuf:"bytes,4,opt,name=filename,proto3" json:"filename,omitempty"` // `autogenpb:save` -- this enables autogenerated pb.Load() and pb.Save()
	Head     string                 `protobuf:"bytes,5,opt,name=head,proto3" json:"head,omitempty"`         // the current origin hash
	Mtime    *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=mtime,proto3" json:"mtime,omitempty"`       // mtime for .git/
	// contains filtered or unexported fields
}

.git/ stats

func NewStats added in v0.0.163

func NewStats() *Stats

func (*Stats) All added in v0.0.163

func (x *Stats) All() *StatScanner

func (*Stats) Append added in v0.0.163

func (x *Stats) Append(y *Stat)

a Append() shortcut (that does Clone() with a mutex) notsure if it really works

func (*Stats) AppendByHash added in v0.0.163

func (x *Stats) AppendByHash(y *Stat) bool

func (*Stats) AppendByPatchId added in v0.0.163

func (x *Stats) AppendByPatchId(y *Stat) bool

func (*Stats) Clone added in v0.0.163

func (x *Stats) Clone(y *Stat) *Stat

a Clone() shortcut (with a mutex). notsure if it really works

func (*Stats) CloneByHash added in v0.0.163

func (x *Stats) CloneByHash(y *Stat) bool

func (*Stats) CloneByPatchId added in v0.0.163

func (x *Stats) CloneByPatchId(y *Stat) bool

func (*Stats) Delete added in v0.0.163

func (x *Stats) Delete(y *Stat) bool

func (*Stats) DeleteByHash added in v0.0.163

func (x *Stats) DeleteByHash(s string) bool

func (*Stats) DeleteByPatchId added in v0.0.163

func (x *Stats) DeleteByPatchId(s string) bool

func (*Stats) Descriptor deprecated added in v0.0.163

func (*Stats) Descriptor() ([]byte, []int)

Deprecated: Use Stats.ProtoReflect.Descriptor instead.

func (*Stats) FindByHash added in v0.0.163

func (x *Stats) FindByHash(s string) *Stat

lookup a Stats by the Hash

func (*Stats) FindByPatchId added in v0.0.163

func (x *Stats) FindByPatchId(s string) *Stat

lookup a Stats by the PatchId

func (*Stats) FormatJSON added in v0.0.163

func (v *Stats) FormatJSON() string

human readable JSON

func (*Stats) FormatTEXT added in v0.0.163

func (v *Stats) FormatTEXT() string

apparently this isn't stable, but it's awesomely better https://protobuf.dev/reference/go/faq/#unstable-text it's brilliant for config files!

func (*Stats) GetFilename added in v0.0.169

func (x *Stats) GetFilename() string

func (*Stats) GetHead added in v0.0.163

func (x *Stats) GetHead() string

func (*Stats) GetMtime added in v0.0.163

func (x *Stats) GetMtime() *timestamppb.Timestamp

func (*Stats) GetStats added in v0.0.163

func (x *Stats) GetStats() []*Stat

func (*Stats) GetUuid added in v0.0.163

func (x *Stats) GetUuid() string

func (*Stats) GetVersion added in v0.0.163

func (x *Stats) GetVersion() string

func (*Stats) HttpPost added in v0.0.163

func (p *Stats) HttpPost(baseURL string, route string) (*Stats, *httppb.HttpRequest, error)

Marshal protobuf, then http POST, then Unmarshal() to protobuf again

func (*Stats) InsertByHash added in v0.0.163

func (x *Stats) InsertByHash(y string) *Stat

returns a Stat if Hash matches, otherwise create

func (*Stats) InsertByPatchId added in v0.0.163

func (x *Stats) InsertByPatchId(y string) *Stat

returns a Stat if PatchId matches, otherwise create

func (*Stats) IterAll added in v0.0.163

func (x *Stats) IterAll() iter.Seq[*Stat]

Iterate 'for x := range' syntax using the awesome golang 1.24 'iter'

func (*Stats) IterByPatchId added in v0.0.169

func (x *Stats) IterByPatchId() iter.Seq[*Stat]

'for x := range' syntax using the awesome golang 1.24 'iter'

func (*Stats) Len added in v0.0.163

func (x *Stats) Len() int

func (*Stats) Load added in v0.0.169

func (pb *Stats) Load() error

func (*Stats) MakeTable added in v0.0.169

func (pb *Stats) MakeTable(name string) *StatsTable

func (*Stats) Marshal added in v0.0.163

func (v *Stats) Marshal() ([]byte, error)

marshal to wire. This is called winning.

func (*Stats) MarshalJSON added in v0.0.163

func (v *Stats) MarshalJSON() ([]byte, error)

marshal json

func (*Stats) NewTable added in v0.0.163

func (x *Stats) NewTable(title string) *StatsTable

func (*Stats) PrintTable added in v0.0.169

func (pb *Stats) PrintTable() string

func (*Stats) PrintTableLimit added in v0.0.169

func (pb *Stats) PrintTableLimit(limit int) string

func (*Stats) ProtoMessage added in v0.0.163

func (*Stats) ProtoMessage()

func (*Stats) ProtoReflect added in v0.0.163

func (x *Stats) ProtoReflect() protoreflect.Message

func (*Stats) Reset added in v0.0.163

func (x *Stats) Reset()

func (*Stats) Save added in v0.0.169

func (pb *Stats) Save() error

func (*Stats) SaveVerbose added in v0.0.169

func (pb *Stats) SaveVerbose() error

func (*Stats) SendReply added in v0.0.163

func (p *Stats) SendReply(w http.ResponseWriter, reqPB *httppb.HttpRequest) error

func (*Stats) SortByPatchId added in v0.0.169

func (x *Stats) SortByPatchId() *StatScanner

func (*Stats) SortCtime added in v0.0.169

func (pb *Stats) SortCtime()

func (*Stats) SortPatchId added in v0.0.169

func (pb *Stats) SortPatchId()

func (*Stats) String added in v0.0.163

func (x *Stats) String() string

func (*Stats) Unmarshal added in v0.0.163

func (v *Stats) Unmarshal(data []byte) error

unmarshal from wire. You have won.

func (*Stats) UnmarshalJSON added in v0.0.163

func (v *Stats) UnmarshalJSON(data []byte) error

unmarshal json

func (*Stats) UnmarshalTEXT added in v0.0.163

func (v *Stats) UnmarshalTEXT(data []byte) error

unmarshalTEXT. This reads the .text config file back in after the user edits it

type StatsScanner added in v0.0.163

type StatsScanner struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*StatsScanner) Next added in v0.0.163

func (it *StatsScanner) Next() *Stats

Next() returns the next thing in the array

func (*StatsScanner) Scan added in v0.0.163

func (it *StatsScanner) Scan() bool

type StatsTable added in v0.0.163

type StatsTable struct {
	Funcs      []*StatFunc
	CustomFunc func(*Stat)
	// contains filtered or unexported fields
}

func (*StatsTable) AddButtonFunc added in v0.0.163

func (t *StatsTable) AddButtonFunc(title string, f func(*Stat) string) *StatFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*StatsTable) AddHash added in v0.0.163

func (t *StatsTable) AddHash() *StatFunc

func (*StatsTable) AddIntFunc added in v0.0.163

func (t *StatsTable) AddIntFunc(title string, f func(*Stat) int) *StatFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*StatsTable) AddName added in v0.0.163

func (t *StatsTable) AddName() *StatFunc

func (*StatsTable) AddPatchId added in v0.0.163

func (t *StatsTable) AddPatchId() *StatFunc

func (*StatsTable) AddRemote added in v0.0.163

func (t *StatsTable) AddRemote() *StatFunc

func (*StatsTable) AddStringFunc added in v0.0.163

func (t *StatsTable) AddStringFunc(title string, f func(*Stat) string) *StatFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*StatsTable) AddSubject added in v0.0.163

func (t *StatsTable) AddSubject() *StatFunc

func (*StatsTable) AddTimeFunc added in v0.0.163

func (t *StatsTable) AddTimeFunc(title string, f func(*Stat) time.Time) *StatFunc

force the application to choose the type of data. this allows the GUI plugin to be smarter

func (*StatsTable) Custom added in v0.0.163

func (mt *StatsTable) Custom(f func(*Stat))

func (*StatsTable) Delete added in v0.0.163

func (mt *StatsTable) Delete()

func (*StatsTable) GetUuid added in v0.0.163

func (mt *StatsTable) GetUuid() string

func (*StatsTable) MakeTable added in v0.0.163

func (mt *StatsTable) MakeTable()

func (*StatsTable) NewUuid added in v0.0.163

func (mt *StatsTable) NewUuid()

func (*StatsTable) PrintTable added in v0.0.163

func (t *StatsTable) PrintTable()

formats & prints the table as text to Stdout. a real timesaver!

func (*StatsTable) PrintTableLimit added in v0.0.169

func (t *StatsTable) PrintTableLimit(limit int)

formats & prints the table as text to Stdout. a real timesaver!

func (*StatsTable) SetParent added in v0.0.163

func (mt *StatsTable) SetParent(p *gui.Node)

func (*StatsTable) ShowTable added in v0.0.163

func (mt *StatsTable) ShowTable()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL