summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-07-09 03:18:29 -0500
committerJeff Carr <[email protected]>2025-07-09 23:24:06 -0500
commit8a788bef6d201b50dd066a62167a23378e4162a7 (patch)
treeab18e3b8af5eab617b48bdceae38759ca4320aee /main.go
parent3588440aed55e81864c1afd2d96d6b037242befd (diff)
make git clone work in forged
Diffstat (limited to 'main.go')
-rw-r--r--main.go50
1 files changed, 48 insertions, 2 deletions
diff --git a/main.go b/main.go
index 7d225c2..fca5e83 100644
--- a/main.go
+++ b/main.go
@@ -4,6 +4,8 @@ import (
"embed"
"fmt"
"net/http"
+ "os"
+ "path/filepath"
"time"
"go.wit.com/lib/protobuf/forgepb"
@@ -16,16 +18,60 @@ var BUILDTIME string
//go:embed resources/*
var resources embed.FS
-var forge *forgepb.Forge
+
+// var forge *forgepb.Forge
var HOSTNAME string = "forge.wit.com"
var LIBDIR string = "/var/lib/forged/"
+var FORGEDIR string = "/home/forge"
func main() {
if argv.Hostname != "" {
HOSTNAME = argv.Hostname
}
- forge = forgepb.Init()
+ // forge = forgepb.Init()
+ if argv.Pull != nil {
+ log.Info("do pull here")
+ dirs, err := scanForgedDir(FORGEDIR)
+ if err != nil {
+ badExit(err)
+ }
+ os.Chdir(FORGEDIR)
+ forge := forgepb.InitPB()
+ log.Info("forge len", forge.Repos.Len())
+ forge.PrintHumanTable(forge.Repos)
+
+ for i, dir := range dirs {
+ log.Info("found repo", i, dir)
+ // repo, err := forge.AddNamespaceDir(ns string, fullpath string)
+ repo, err := readGitPB(dir)
+ if err != nil {
+ log.Info(dir, err)
+ continue
+ }
+ log.Info("repo:", repo.Namespace, repo.URL)
+
+ // check to see if 'git clone' has already been run
+ _, err = os.Stat(filepath.Join(dir, "git.clone"))
+ if os.IsNotExist(err) {
+ log.Info("repo needs cloning", dir)
+ if err := forgepb.RunGitClone("git.clone", dir, "https://"+repo.Namespace); err != nil {
+ log.Info("git clone failed", err)
+ if giturl, err := forgepb.FindGoImport("https://" + repo.Namespace); err == nil {
+ log.Info("TRY THIS INSTEAD!!!!", giturl)
+ if err := forgepb.RunGitClone("git.clone", dir, giturl); err != nil {
+ log.Info("git clone still failed", giturl, err)
+ }
+ }
+
+ }
+ } else {
+ log.Info("repo is already cloned", dir)
+ }
+ break
+ }
+ okExit("")
+ }
http.HandleFunc("/", okHandler)
// go https() // use caddy instead