Compare commits

..

2 Commits

Author SHA1 Message Date
jolheiser 7ed7a54834
ack original project
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2022-10-10 11:46:48 -05:00
jolheiser e3011f0912
sort browsers
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2022-10-10 11:44:50 -05:00
2 changed files with 16 additions and 6 deletions

View File

@ -4,6 +4,8 @@ CLI for [caniuse](https://caniuse.com)
Retrieves data from the [repository](https://github.com/Fyrd/caniuse)
Largely based off of [caniuse-cmd](https://github.com/sgentle/caniuse-cmd), with fewer flags.
## License
[MIT](LICENSE)

18
main.go
View File

@ -128,16 +128,23 @@ func formatFeat(feat data, d Data, short bool) string {
}
needNote := make(map[int]struct{})
for browser, stats := range feat.Stats {
browsers := make([]string, 0, len(feat.Stats))
for browser := range feat.Stats {
if d.Agents[browser].Type != "desktop" {
continue
}
browsers = append(browsers, browser)
}
sort.Strings(browsers)
for _, browser := range browsers {
agent := d.Agents[browser]
stats := feat.Stats[browser]
if !short {
out.WriteString("\t")
}
out.WriteString(d.Agents[browser].Browser + " ")
out.WriteString(agent.Browser + " ")
results := makeResults(d.Agents[browser], stats)
results := makeResults(agent, stats)
if len(results) == 1 {
results[0].version = ""
}
@ -165,10 +172,10 @@ func formatFeat(feat data, d Data, short bool) string {
if _, ok := needNote[n]; !ok {
continue
}
out.WriteString(fmt.Sprintf("\t\t%s%s\n", color.YellowString(supernums[n]), feat.NotesByNum[num]))
out.WriteString(fmt.Sprintf("\t%s%s\n", color.YellowString(supernums[n]), feat.NotesByNum[num]))
}
if feat.Notes != "" {
out.WriteString(fmt.Sprintf("\t %s %s", resultmap["i"], replaceNoteRe.ReplaceAllString(feat.Notes, " ")))
out.WriteString(fmt.Sprintf("\t%s %s", resultmap["i"], replaceNoteRe.ReplaceAllString(feat.Notes, " ")))
}
}
@ -276,6 +283,7 @@ func loadData() (Data, error) {
if err != nil && !errors.Is(err, fs.ErrNotExist) {
return data, fmt.Errorf("could not stat %q: %v", dataPath, err)
} else if errors.Is(err, fs.ErrNotExist) || time.Since(fi.ModTime()) > refresh {
color.Blue("updating caniuse data...")
if err := Download(dataPath); err != nil {
return data, fmt.Errorf("could not download data: %v", err)
}