This commit is contained in:
Jeff Carr 2025-03-04 20:29:23 -06:00
parent aa229b8778
commit 0529b0dca0
2 changed files with 32 additions and 21 deletions

View File

@ -1,5 +1,12 @@
# forge # forge
## Design Goals
* Software engineering is the art of making things work.
* Release engineering is the art of making things perfect.
## Notes
This can be used to maintain git repositories This can be used to maintain git repositories
expiremental work on federated git expiremental work on federated git
@ -9,22 +16,25 @@ expiremental work on federated git
* uses a GUI or the console(console display needs work) * uses a GUI or the console(console display needs work)
* always wrap around 'git' -- it basically just types 'git' commands really fast * always wrap around 'git' -- it basically just types 'git' commands really fast
## Notes & Goals: ## Development Goals
* use a GUI that also works on the command line * have a GUI that also works on the command line
* andlabs GTK gui plugin starts breaking around 200 repos
## Install: ## Install:
* go install go.wit.com/apps/forge@latest * go install go.wit.com/apps/forge@latest
## building from sources (may work Jan 2026) ## building from sources
``` ```
# note as of Feb 2025. Forge has an option in forge to build itself.
# The instructions below are out of date, but provide the general idea.
# accurate instructions are in the forge code itself
go install go.wit.com/apps/go-clone@latest # this tool makes it easier to 'git clone' repos and recursively 'git clone' the dependancies go install go.wit.com/apps/go-clone@latest # this tool makes it easier to 'git clone' repos and recursively 'git clone' the dependancies
go install go.wit.com/apps/autogenpb@latest # this tool will generate the protobuf *pb.go files (also Marshal(), Sort(), etc.) go install go.wit.com/apps/autogenpb@latest # this tool will generate the protobuf *pb.go files (also Marshal(), Sort(), etc.)
go-clone --recursive go.wit.com/apps/forge # this will 'git clone' about 20 repos into ~/go/src (or where your go.work file is) go-clone go.wit.com/apps/forge # this will 'git clone' about 20 repos into ~/go/src (or where your go.work file is)
cd go.wit.com/lib/protobuf/forgepb cd go.wit.com/lib/protobuf/forgepb
make # autogenpb will make .pb.go, marshal.pb.go and sort.pb.go files make # autogenpb will make .pb.go, marshal.pb.go and sort.pb.go files

View File

@ -95,25 +95,26 @@ func makeReposWin() *gadgets.GenericWindow {
log.Info("test delete window here") log.Info("test delete window here")
} }
grid := insertWin.Group.RawGrid() grid := insertWin.Group.RawGrid()
grid.NewButton("do something", func() { var t *gitpb.ReposTable
log.Info("do something on each pb row") found := new(gitpb.Repos)
}) all := me.forge.Repos.SortByFullPath()
grid.NewButton("attempt to insert table", func() { for all.Scan() {
// make the window for the first time repo := all.Next()
found := new(gitpb.Repos) if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
all := me.forge.Repos.SortByFullPath() continue
for all.Scan() {
repo := all.Next()
if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
continue
}
found.AppendByGoPath(repo)
} }
t := addWindowPB(insertWin, found)
found.AppendByGoPath(repo)
}
grid.NewButton("insert table", func() {
// make the window for the first time
t = addWindowPB(insertWin, found)
log.Info("table has uuid", t.GetUuid()) log.Info("table has uuid", t.GetUuid())
}) })
grid.NewButton("attempt to delete table", func() {
t.Delete()
})
}) })
grid.NewButton("Configure", func() { grid.NewButton("Configure", func() {