Skip to content

Commit 56634a9

Browse files
committed
fix: beautified UI
1 parent 3d70e94 commit 56634a9

File tree

11 files changed

+172
-14
lines changed

11 files changed

+172
-14
lines changed

cmd/add.go

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"io/ioutil"
2121
"os"
2222

23+
"github.com/charmbracelet/lipgloss"
2324
"github.com/mrinjamul/tasks/todo"
2425
"github.com/spf13/cobra"
2526
)
@@ -33,6 +34,18 @@ var addCmd = &cobra.Command{
3334
Run: addRun,
3435
}
3536

37+
var (
38+
addMark = lipgloss.NewStyle().SetString("[+]").
39+
Foreground(lipgloss.AdaptiveColor{Light: "#43BF6D", Dark: "#73F59F"}).
40+
PaddingRight(1).
41+
String()
42+
newlist = func(s string) string {
43+
return addMark + lipgloss.NewStyle().
44+
Foreground(highlight).
45+
Render(s)
46+
}
47+
)
48+
3649
// Main func
3750
func addRun(cmd *cobra.Command, args []string) {
3851
if len(args) == 0 {
@@ -44,10 +57,18 @@ func addRun(cmd *cobra.Command, args []string) {
4457
if err != nil {
4558
file := []byte("[]")
4659
err = ioutil.WriteFile(todo.DatabaseFile, file, 0644)
60+
if err != nil {
61+
fmt.Println("Error: Unable to create database file")
62+
os.Exit(1)
63+
}
4764
}
4865
if _, err := os.Stat(todo.DatabaseFile); os.IsNotExist(err) {
4966
file := []byte("[]")
5067
err = ioutil.WriteFile(todo.DatabaseFile, file, 0644)
68+
if err != nil {
69+
fmt.Println("Error: Unable to create database file")
70+
os.Exit(1)
71+
}
5172
}
5273
var todoName string
5374
for _, x := range args {
@@ -57,7 +78,11 @@ func addRun(cmd *cobra.Command, args []string) {
5778
task.SetPriority(priority)
5879
tasks = append(tasks, task)
5980
err = todo.SaveTasks(todo.DatabaseFile, tasks)
60-
fmt.Println("[+] New task added")
81+
// fmt.Println("[+] New task added")
82+
li := lipgloss.JoinHorizontal(lipgloss.Left,
83+
newlist("New task added "+todoName),
84+
)
85+
fmt.Println(li)
6186
if err != nil {
6287
fmt.Println(err)
6388
}

cmd/clear.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ var clearCmd = &cobra.Command{
3333
// Main func
3434
func clearRun(cmd *cobra.Command, args []string) {
3535
tasks := []todo.Task{}
36-
if forceOpt == true {
36+
if forceOpt {
3737
err := todo.SaveTasks(todo.DatabaseFile, tasks)
3838
if err != nil {
3939
fmt.Printf("%v", err)

cmd/done.go

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"sort"
2323
"strconv"
2424

25+
"github.com/charmbracelet/lipgloss"
2526
"github.com/mrinjamul/tasks/todo"
2627
"github.com/spf13/cobra"
2728
)
@@ -35,14 +36,28 @@ var doneCmd = &cobra.Command{
3536
Run: doneRun,
3637
}
3738

39+
var (
40+
doneMark = lipgloss.NewStyle().SetString("[✓]").
41+
Foreground(special).
42+
PaddingRight(1).
43+
String()
44+
45+
doneList = func(s string) string {
46+
return doneMark + lipgloss.NewStyle().
47+
Strikethrough(true).
48+
Foreground(lipgloss.AdaptiveColor{Light: "#969B86", Dark: "#696969"}).
49+
Render(s)
50+
}
51+
)
52+
3853
// Main func
3954
func doneRun(cmd *cobra.Command, args []string) {
4055
if len(args) == 0 {
4156
fmt.Println("Error: Too short argument")
4257
fmt.Println("Usage: tasks done [task id]")
4358
os.Exit(1)
4459
}
45-
tasks, err := todo.ReadTasks(todo.DatabaseFile)
60+
tasks, _ := todo.ReadTasks(todo.DatabaseFile)
4661
i, err := strconv.Atoi(args[0])
4762

4863
if err != nil {
@@ -51,8 +66,11 @@ func doneRun(cmd *cobra.Command, args []string) {
5166
}
5267
if i > 0 && i <= len(tasks) {
5368
tasks[i-1].Done = true
54-
fmt.Printf("%q %v\n", tasks[i-1].Text, "marked done")
55-
69+
// fmt.Printf("%q %v\n", tasks[i-1].Text, "marked done")
70+
li := lipgloss.JoinHorizontal(lipgloss.Left,
71+
doneList(tasks[i-1].Text),
72+
)
73+
fmt.Println(li)
5674
sort.Sort(todo.ByPri(tasks))
5775
todo.SaveTasks(todo.DatabaseFile, tasks)
5876
} else {

cmd/list.go

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"sort"
2323
"text/tabwriter"
2424

25+
"github.com/charmbracelet/lipgloss"
2526
"github.com/mrinjamul/tasks/todo"
2627
"github.com/spf13/cobra"
2728
)
@@ -35,9 +36,47 @@ var listCmd = &cobra.Command{
3536
Run: listRun,
3637
}
3738

39+
var (
40+
// make looks good
41+
// width = 96
42+
// columnWidth = 80
43+
44+
subtle = lipgloss.AdaptiveColor{Light: "#D9DCCF", Dark: "#383838"}
45+
highlight = lipgloss.AdaptiveColor{Light: "#874BFD", Dark: "#7D56F4"}
46+
morehigh = lipgloss.AdaptiveColor{Light: "#FFCB6B", Dark: "#FFCB6B"}
47+
special = lipgloss.AdaptiveColor{Light: "#43BF6D", Dark: "#73F59F"}
48+
// List.
49+
list = lipgloss.NewStyle().
50+
Border(lipgloss.NormalBorder(), false, true, false, false).
51+
BorderForeground(subtle).
52+
MarginRight(2)
53+
54+
listHeader = lipgloss.NewStyle().
55+
BorderStyle(lipgloss.NormalBorder()).
56+
BorderBottom(true).
57+
BorderForeground(subtle).
58+
MarginRight(2).
59+
Render
60+
61+
listItem = lipgloss.NewStyle().PaddingLeft(2).Render
62+
listItemHighlight = lipgloss.NewStyle().Foreground(highlight).PaddingLeft(2).Render
63+
listItemMoreHigh = lipgloss.NewStyle().Foreground(morehigh).PaddingLeft(2).Render
64+
65+
checkMark = lipgloss.NewStyle().SetString("✓").
66+
Foreground(special).
67+
PaddingRight(1).
68+
String()
69+
70+
listDone = func(s string) string {
71+
return checkMark + lipgloss.NewStyle().
72+
Strikethrough(true).
73+
Foreground(lipgloss.AdaptiveColor{Light: "#969B86", Dark: "#696969"}).
74+
Render(s)
75+
}
76+
)
77+
3878
// Main func
3979
func listRun(cmd *cobra.Command, args []string) {
40-
// TODO: make looks good
4180

4281
// Check if database exists or create
4382
if _, err := os.Stat(todo.DatabaseFile); os.IsNotExist(err) {
@@ -49,6 +88,9 @@ func listRun(cmd *cobra.Command, args []string) {
4988
if err != nil {
5089
file := []byte("[]")
5190
err = ioutil.WriteFile(todo.DatabaseFile, file, 0644)
91+
if err != nil {
92+
fmt.Println(err)
93+
}
5294
}
5395
if len(tasks) == 0 {
5496
fmt.Println("Empty Todo list")
@@ -57,11 +99,24 @@ func listRun(cmd *cobra.Command, args []string) {
5799
sort.Sort(todo.ByPri(tasks))
58100

59101
w := tabwriter.NewWriter(os.Stdout, 3, 0, 1, ' ', 0)
102+
vertical := lipgloss.JoinVertical(lipgloss.Left, listHeader("TODO:"))
60103
for _, i := range tasks {
61104
if allOpt || i.Done == doneOpt {
62-
fmt.Fprintln(w, i.Label()+"\t"+i.PrettyDone()+"\t"+i.PrettyP()+"\t"+i.Text+"\t")
105+
if i.Done {
106+
vertical = lipgloss.JoinVertical(lipgloss.Left, vertical, listDone(i.Label()+i.Text))
107+
} else if i.Priority == 1 {
108+
vertical = lipgloss.JoinVertical(lipgloss.Left, vertical, listItemMoreHigh(i.Label()+i.Text))
109+
} else if i.Priority == 3 {
110+
vertical = lipgloss.JoinVertical(lipgloss.Left, vertical, listItem(i.Label()+i.Text))
111+
} else {
112+
vertical = lipgloss.JoinVertical(lipgloss.Left, vertical, listItemHighlight(i.Label()+i.Text))
113+
}
63114
}
64115
}
116+
lists := lipgloss.JoinHorizontal(lipgloss.Top,
117+
list.Render(vertical),
118+
)
119+
fmt.Fprintln(w, lists)
65120
w.Flush()
66121
}
67122

cmd/modify.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func modifyRun(cmd *cobra.Command, args []string) {
4949
fmt.Println("Usage: tasks modify [task id] [new]")
5050
os.Exit(1)
5151
}
52-
tasks, err := todo.ReadTasks(todo.DatabaseFile)
52+
tasks, _ := todo.ReadTasks(todo.DatabaseFile)
5353
i, err := strconv.Atoi(args[0])
5454
if err != nil {
5555
fmt.Println(args[0], "is not a valid index\ninvalid syntax")

cmd/remove.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"sort"
2222
"strconv"
2323

24+
"github.com/charmbracelet/lipgloss"
2425
"github.com/mrinjamul/tasks/todo"
2526
"github.com/spf13/cobra"
2627
)
@@ -34,6 +35,19 @@ var removeCmd = &cobra.Command{
3435
Run: removeRun,
3536
}
3637

38+
var (
39+
removeMark = lipgloss.NewStyle().SetString("[-]").
40+
Foreground(lipgloss.AdaptiveColor{Light: "#FF5F5F", Dark: "#FF5F5F"}).
41+
PaddingRight(1).
42+
String()
43+
44+
removeList = func(s string) string {
45+
return removeMark + lipgloss.NewStyle().
46+
Foreground(morehigh).
47+
Render(s)
48+
}
49+
)
50+
3751
// Main func
3852
func removeRun(cmd *cobra.Command, args []string) {
3953
// remove only done tasks func
@@ -52,7 +66,11 @@ func removeRun(cmd *cobra.Command, args []string) {
5266
}
5367
if tasks[i].Done {
5468
text := tasks[i].Text
55-
fmt.Println("- " + "\"" + strconv.Itoa(i) + ". " + text + "\"" + " has been removed")
69+
// fmt.Println("- " + "\"" + strconv.Itoa(i) + ". " + text + "\"" + " has been removed")
70+
li := lipgloss.JoinHorizontal(lipgloss.Left,
71+
removeList("'"+strconv.Itoa(i)+". "+text+"'"+" has been removed"),
72+
)
73+
fmt.Println(li)
5674
}
5775
}
5876
sort.Sort(todo.ByPri(undoneTasks))
@@ -89,7 +107,11 @@ func removeRun(cmd *cobra.Command, args []string) {
89107
if i > 0 && i <= len(tasks) {
90108
text := tasks[i-1].Text
91109
tasks = todo.RemoveTask(tasks, i-1)
92-
fmt.Println("- " + "\"" + strconv.Itoa(i) + ". " + text + "\"" + " has been removed")
110+
// fmt.Println("- " + "\"" + strconv.Itoa(i) + ". " + text + "\"" + " has been removed")
111+
li := lipgloss.JoinHorizontal(lipgloss.Left,
112+
removeList("'"+strconv.Itoa(i)+". "+text+"'"+" has been removed"),
113+
)
114+
fmt.Println(li)
93115
sort.Sort(todo.ByPri(tasks))
94116
todo.SaveTasks(todo.DatabaseFile, tasks)
95117
} else {

cmd/root.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"github.com/spf13/cobra"
2424
)
2525

26-
var cfgFile string
26+
// var cfgFile string
2727

2828
// rootCmd represents the base command when called without any subcommands
2929
var rootCmd = &cobra.Command{

cmd/undone.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"sort"
2323
"strconv"
2424

25+
"github.com/charmbracelet/lipgloss"
2526
"github.com/mrinjamul/tasks/todo"
2627
"github.com/spf13/cobra"
2728
)
@@ -35,22 +36,39 @@ var undoneCmd = &cobra.Command{
3536
Run: undoneRun,
3637
}
3738

39+
var (
40+
undoneMark = lipgloss.NewStyle().SetString("[ ]").
41+
Foreground(lipgloss.AdaptiveColor{Light: "#43BF6D", Dark: "#73F59F"}).
42+
PaddingRight(1).
43+
String()
44+
45+
undoneList = func(s string) string {
46+
return undoneMark + lipgloss.NewStyle().
47+
Foreground(morehigh).
48+
Render(s)
49+
}
50+
)
51+
3852
// Main func
3953
func undoneRun(cmd *cobra.Command, args []string) {
4054
if len(args) == 0 {
4155
fmt.Println("Error: Too short argument")
4256
fmt.Println("Usage: tasks undone [task id]")
4357
os.Exit(1)
4458
}
45-
tasks, err := todo.ReadTasks(todo.DatabaseFile)
59+
tasks, _ := todo.ReadTasks(todo.DatabaseFile)
4660
i, err := strconv.Atoi(args[0])
4761

4862
if err != nil {
4963
log.Fatalln(args[0], "is not a valid index\ninvalid syntax")
5064
}
5165
if i > 0 && i <= len(tasks) {
5266
tasks[i-1].Done = false
53-
fmt.Printf("%q %v\n", tasks[i-1].Text, "marked undone")
67+
// fmt.Printf("%q %v\n", tasks[i-1].Text, "marked undone")
68+
li := lipgloss.JoinHorizontal(lipgloss.Left,
69+
undoneList(tasks[i-1].Text),
70+
)
71+
fmt.Println(li)
5472

5573
sort.Sort(todo.ByPri(tasks))
5674
todo.SaveTasks(todo.DatabaseFile, tasks)

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module github.com/mrinjamul/tasks
33
go 1.13
44

55
require (
6+
github.com/charmbracelet/lipgloss v0.4.0
67
github.com/mitchellh/go-homedir v1.1.0
78
github.com/spf13/cobra v1.1.1
89
)

go.sum

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce
2424
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
2525
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
2626
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
27+
github.com/charmbracelet/lipgloss v0.4.0 h1:768h64EFkGUr8V5yAKV7/Ta0NiVceiPaV+PphaW1K9g=
28+
github.com/charmbracelet/lipgloss v0.4.0/go.mod h1:vmdkHvce7UzX6xkyf4cca8WlwdQ5RQr8fzta+xl7BOM=
2729
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
2830
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
2931
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
@@ -102,9 +104,16 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
102104
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
103105
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
104106
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
107+
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
108+
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
105109
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
106110
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
107111
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
112+
github.com/mattn/go-isatty v0.0.13 h1:qdl+GuBjcsKKDco5BsxPJlId98mSWNKqYA+Co0SC1yA=
113+
github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
114+
github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
115+
github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
116+
github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
108117
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
109118
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
110119
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
@@ -118,6 +127,10 @@ github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:F
118127
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
119128
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
120129
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
130+
github.com/muesli/reflow v0.2.1-0.20210115123740-9e1d0d53df68 h1:y1p/ycavWjGT9FnmSjdbWUlLGvcxrY0Rw3ATltrxOhk=
131+
github.com/muesli/reflow v0.2.1-0.20210115123740-9e1d0d53df68/go.mod h1:Xk+z4oIWdQqJzsxyjgl3P22oYZnHdZ8FFTHAQQt5BMQ=
132+
github.com/muesli/termenv v0.9.0 h1:wnbOaGz+LUR3jNT0zOzinPnyDaCZUQRZj9GxK8eRVl8=
133+
github.com/muesli/termenv v0.9.0/go.mod h1:R/LzAKf+suGs4IsO95y7+7DpFHO0KABgnZqtlyx2mBw=
121134
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
122135
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
123136
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
@@ -135,6 +148,9 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8
135148
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
136149
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
137150
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
151+
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
152+
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
153+
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
138154
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
139155
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
140156
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@@ -226,6 +242,9 @@ golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7w
226242
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
227243
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
228244
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
245+
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
246+
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k=
247+
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
229248
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
230249
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
231250
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=

0 commit comments

Comments
 (0)