2022-10-25 03:20:57 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2022-10-25 16:40:11 +00:00
|
|
|
"flag"
|
2022-10-29 03:31:42 +00:00
|
|
|
"fmt"
|
2022-10-25 16:40:11 +00:00
|
|
|
"os"
|
|
|
|
|
2022-10-25 03:20:57 +00:00
|
|
|
"github.com/caarlos0/log"
|
|
|
|
"github.com/charmbracelet/lipgloss"
|
|
|
|
)
|
|
|
|
|
2022-10-25 04:08:07 +00:00
|
|
|
var Version = "develop"
|
|
|
|
|
2022-10-25 03:20:57 +00:00
|
|
|
func main() {
|
2022-10-25 16:40:11 +00:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2022-10-25 16:36:10 +00:00
|
|
|
cfg, err := loadConfig()
|
|
|
|
if err != nil {
|
|
|
|
log.WithError(err).Error("could not load config")
|
|
|
|
}
|
2022-10-25 04:06:55 +00:00
|
|
|
|
2022-10-25 16:36:10 +00:00
|
|
|
for _, lang := range cfg.Languages {
|
|
|
|
l, err := trendingLang(lang.Name, lang.Timeframes)
|
2022-10-25 04:06:55 +00:00
|
|
|
if err != nil {
|
|
|
|
log.WithError(err).Fatal("could not get trending repositories")
|
|
|
|
}
|
2022-10-25 20:58:22 +00:00
|
|
|
log.Styles[log.InfoLevel] = lipgloss.NewStyle().Foreground(lipgloss.Color(l.Color)).Bold(true)
|
2022-10-25 16:36:10 +00:00
|
|
|
log.Info(lang.Name)
|
2022-10-25 04:06:55 +00:00
|
|
|
log.IncreasePadding()
|
2022-10-25 20:58:22 +00:00
|
|
|
for _, repo := range l.Repositories {
|
|
|
|
log.Info(repo.Link())
|
|
|
|
if repo.Description != "" {
|
2022-10-25 16:36:10 +00:00
|
|
|
log.IncreasePadding()
|
2022-10-25 20:58:22 +00:00
|
|
|
log.Info(repo.Description)
|
2022-10-25 16:36:10 +00:00
|
|
|
log.DecreasePadding()
|
|
|
|
}
|
2022-10-29 03:31:42 +00:00
|
|
|
fmt.Println()
|
2022-10-25 04:06:55 +00:00
|
|
|
}
|
|
|
|
log.ResetPadding()
|
2022-10-25 03:20:57 +00:00
|
|
|
}
|
|
|
|
}
|