diff options
| author | Jeff Carr <[email protected]> | 2025-09-13 08:31:54 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-09-13 08:31:54 -0500 |
| commit | cb6394f34a250aed6cb186bd2a9af39d8c19f5f4 (patch) | |
| tree | 37eadbb71aea7b121760062f14a0938e44e921f4 /goSrcScan.go | |
| parent | 2fccf603358f5c7e3f3403c1ca5e7f50451d88fd (diff) | |
finally dump this old code
Diffstat (limited to 'goSrcScan.go')
| -rw-r--r-- | goSrcScan.go | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/goSrcScan.go b/goSrcScan.go deleted file mode 100644 index e7c45c9..0000000 --- a/goSrcScan.go +++ /dev/null @@ -1,206 +0,0 @@ -package forgepb - -import ( - "fmt" - "os" - "path/filepath" - - "go.wit.com/log" -) - -/* -func (f *Forge) ScanGoSrc() (bool, error) { - dirs, err := gitDirectoriesNew(f.Config.ReposDir) - if err != nil { - return false, err - } - - stats := f.RillRepos(reloadCheck) - for _, stat := range stats { - if stat.Err == nil { - continue - } - config.SetChanged("repos", true) - } - - var gopaths []string - for _, dir := range dirs { - if strings.HasPrefix(dir, f.Config.ReposDir) { - gopath := strings.TrimPrefix(dir, f.Config.ReposDir) - gopath = strings.Trim(gopath, "/") - if r := f.FindByGoPath(gopath); r != nil { - // log.Info("already have", gopath) - continue - } - gopaths = append(gopaths, gopath) - } else { - log.Log(WARN, "ScanGoSrc() bad:", dir) - return false, errors.New("forgepb.ScanGoSrc() bad dir: " + dir) - } - } - newcount, err := f.rillScanDirs(gopaths) - if err != nil { - log.Info("go src dir problem. exit for now?", err) - return false, err - } - if newcount != 0 { - log.Info("forge go src scan found", newcount, "repos") - config.SetChanged("repos", true) - } - return true, err -} - -// returns a repo protobuf for a directory if the directory is a git repo -func (f *Forge) ScanDir(dir string) *gitpb.Repo { - repo, err := f.Repos.NewRepo(dir, "") - if err != nil { - log.Info("ScanDir() error", dir, err) - return nil - } - return repo -} - -func gitDirectoriesOld(srcDir string) ([]string, error) { - var all []string - err := filepath.Walk(srcDir, func(path string, info os.FileInfo, err error) error { - if err != nil { - log.Log(WARN, "Error accessing path:", path, err) - return nil - } - - // Check if the path is a directory and has a .git subdirectory - if info.IsDir() && IsGitDir(path) { - all = append(all, path) - } - - return nil - }) - - if err != nil { - log.Log(WARN, "Error walking the path:", srcDir, err) - } - - return all, err -} - -// IsGitDir checks if a .git directory exists inside the given directory -func IsGitDir(dir string) bool { - gitDir := filepath.Join(dir, ".git") - info, err := os.Stat(gitDir) - if os.IsNotExist(err) { - return false - } - return info.IsDir() -} - -// rill is awesome. long live rill -// attempt scan with rill -func (f *Forge) rillScanDirs(gopaths []string) (int, error) { - // Convert a slice of user IDs into a channel - ids := rill.FromSlice(gopaths, nil) - - // Read users from the API. - // Concurrency = 20 - dirs := rill.Map(ids, 20, func(id string) (*gitpb.Repo, error) { - return f.checkpath(id, "") - }) - - var counter int - // Activate users. - // Concurrency = 10 - err := rill.ForEach(dirs, 10, func(repo *gitpb.Repo) error { - counter += 1 - return nil - }) - - return counter, err -} - -func (f *Forge) checkpath(gopath string, url string) (*gitpb.Repo, error) { - fullpath := filepath.Join(f.Config.ReposDir, gopath) - log.Info("forge creating protobuf for", fullpath) - repo, err := f.NewGoRepo(gopath, "") - if err != nil { - log.Info("\tprotobuf error", gopath, err) - } - return repo, err -} - -// deletes the repo from the protobuf (pray your mutex locks are working) -// re-scans the repo -// returns the new repo -func (f *Forge) ReAdd(repo *gitpb.Repo) (*gitpb.Repo, error) { - if repo == nil { - return nil, log.Errorf("can't delete repo == nil") - } - fullpath := repo.GetFullPath() - ns := repo.GetNamespace() - if !f.Repos.Delete(repo) { - return nil, log.Errorf("delete of repo failed") - } - - repo, err := f.AddNamespaceDir(ns, fullpath) - if err != nil { - log.Info("ReAdd() error", fullpath, err) - return nil, err - } - return repo, err -} -*/ - -// doesn't enter the directory any further when it finds a .git/ -// not stupid like my old version -func gitDirectoriesNew(srcDir string) ([]string, error) { - var all []string - var trip bool - err := filepath.WalkDir(srcDir, func(path string, d os.DirEntry, err error) error { - if err != nil { - // Handle possible errors, like permission issues - fmt.Fprintf(os.Stderr, "error accessing path %q: %v\n", path, err) - return err - } - - if d.IsDir() { - // log.Info("path is dir", path) - } else { - _, fname := filepath.Split(path) - switch fname { - case "repos.pb": - case "go.work": - case "go.work.last": - case "go.work.sum": - default: - // todo: figure out a way to do padding for init() - if trip == false { - log.Info("WARNING:") - } - log.Info("WARNING: you have an untracked file outside of any .git repository:", path) - trip = true - } - return nil - } - - gitdir := filepath.Join(path, ".git") - _, err2 := os.Stat(gitdir) - if !os.IsNotExist(err2) { - all = append(all, path) - return filepath.SkipDir - } - return nil - }) - // - // probably always leave this here forever - // this check, along with CheckDirty() makes sure you can safely delete ~/go/src or the go.work directory - // because everything is either checked in or deleted. An important thing to know! - if trip { - log.Info("WARNING:") - log.Info("WARNING: there isn't a way to disable this warning yet") - log.Info("WARNING: probably this is a good thing however. you don't want to leave files outside of git repos here") - log.Info("WARNING: so this warning should probably stay") - log.Info("WARNING:") - log.Info("WARNING: this also might mean you put these files here because you are actively working on them") - log.Info("WARNING: and you don't want to forget about them") - log.Info("WARNING:") - } - return all, err -} |
