diff options
| author | Jeff Carr <[email protected]> | 2025-07-09 03:18:29 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-07-09 23:24:06 -0500 |
| commit | 8a788bef6d201b50dd066a62167a23378e4162a7 (patch) | |
| tree | ab18e3b8af5eab617b48bdceae38759ca4320aee /main.go | |
| parent | 3588440aed55e81864c1afd2d96d6b037242befd (diff) | |
make git clone work in forged
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 50 |
1 files changed, 48 insertions, 2 deletions
@@ -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 |
