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  }