trending/main.go

53 lines
1.1 KiB
Go

package main
import (
"flag"
"fmt"
"os"
"github.com/caarlos0/log"
"github.com/charmbracelet/lipgloss"
)
var Version = "develop"
func main() {
fs := flag.NewFlagSet("trending", flag.ExitOnError)
versionFlag := fs.Bool("version", false, "Show version and exit")
fs.BoolVar(versionFlag, "v", *versionFlag, "--version")
if err := fs.Parse(os.Args[1:]); err != nil {
log.WithError(err).Error("")
return
}
if *versionFlag {
log.Infof("trending (%s)", Version)
return
}
cfg, err := loadConfig()
if err != nil {
log.WithError(err).Error("could not load config")
}
for _, lang := range cfg.Languages {
l, err := trendingLang(lang.Name, lang.Timeframes)
if err != nil {
log.WithError(err).Fatal("could not get trending repositories")
}
log.Styles[log.InfoLevel] = lipgloss.NewStyle().Foreground(lipgloss.Color(l.Color)).Bold(true)
log.Info(lang.Name)
log.IncreasePadding()
for _, repo := range l.Repositories {
log.Info(repo.Link())
if repo.Description != "" {
log.IncreasePadding()
log.Info(repo.Description)
log.DecreasePadding()
}
fmt.Println()
}
log.ResetPadding()
}
}