github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/core/modules/cmd-status.go (about) 1 package modules 2 3 import ( 4 "bytes" 5 6 "github.com/lmorg/murex/config/profile" 7 "github.com/lmorg/murex/lang" 8 "github.com/lmorg/murex/utils/readline" 9 ) 10 11 func statusModules(p *lang.Process) error { 12 db, err := readPackagesFile(profile.ModulePath() + profile.PackagesFile) 13 if err != nil { 14 return err 15 } 16 17 for i := range db { 18 p.Stdout.Writeln(bytes.Repeat([]byte{'-'}, readline.GetTermWidth())) 19 20 if err := packageDirExists(profile.ModulePath() + "/" + db[i].Package); err == nil { 21 write(p, "{BLUE}Skipping package '{BOLD}%s{RESET}{BLUE}'....{RESET}", db[i].Package) 22 continue 23 } 24 25 write(p, "Package status '{BOLD}%s{RESET}'....", db[i].Package) 26 27 switch db[i].Protocol { 28 case "git": 29 err = gitStatus(p, &db[i]) 30 if err != nil { 31 write(p, "{RED}Unable to return status for package '{BOLD}%s{RESET}{RED}': %s", db[i].Package, err.Error()) 32 } 33 34 default: 35 write(p, "{RED}Unable to return status for package '{BOLD}%s{RESET}{RED}': Unknown protocol `%s`", db[i].Package, db[i].Protocol) 36 } 37 } 38 39 return nil 40 }