Skip to content

Commit 58d343f

Browse files
author
weijie
committed
feat: path prompt ui
1 parent eaf84e5 commit 58d343f

File tree

7 files changed

+55
-20
lines changed

7 files changed

+55
-20
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11

22
dist/
3-
data/path
3+
path

bin/tracegit

-3.91 MB
Binary file not shown.

go.mod

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,21 @@ require (
1111
require (
1212
github.com/atotto/clipboard v0.1.4 // indirect
1313
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
14+
github.com/catppuccin/go v0.2.0 // indirect
15+
github.com/charmbracelet/huh v0.3.0 // indirect
1416
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
1517
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
16-
github.com/mattn/go-isatty v0.0.18 // indirect
18+
github.com/mattn/go-isatty v0.0.20 // indirect
1719
github.com/mattn/go-localereader v0.0.1 // indirect
1820
github.com/mattn/go-runewidth v0.0.15 // indirect
19-
github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b // indirect
21+
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
2022
github.com/muesli/cancelreader v0.2.2 // indirect
2123
github.com/muesli/reflow v0.3.0 // indirect
2224
github.com/muesli/termenv v0.15.2 // indirect
2325
github.com/rivo/uniseg v0.4.7 // indirect
2426
github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f // indirect
25-
golang.org/x/sync v0.1.0 // indirect
26-
golang.org/x/sys v0.12.0 // indirect
27-
golang.org/x/term v0.6.0 // indirect
28-
golang.org/x/text v0.3.8 // indirect
27+
golang.org/x/sync v0.4.0 // indirect
28+
golang.org/x/sys v0.13.0 // indirect
29+
golang.org/x/term v0.13.0 // indirect
30+
golang.org/x/text v0.13.0 // indirect
2931
)

go.sum

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@ github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z
22
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
33
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
44
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
5+
github.com/catppuccin/go v0.2.0 h1:ktBeIrIP42b/8FGiScP9sgrWOss3lw0Z5SktRoithGA=
6+
github.com/catppuccin/go v0.2.0/go.mod h1:8IHJuMGaUUjQM82qBrGNBv7LFq6JI3NnQCF6MOlZjpc=
57
github.com/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0=
68
github.com/charmbracelet/bubbles v0.18.0/go.mod h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw=
79
github.com/charmbracelet/bubbletea v0.25.0 h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM=
810
github.com/charmbracelet/bubbletea v0.25.0/go.mod h1:EN3QDR1T5ZdWmdfDzYcqOCAps45+QIJbLOBxmVNWNNg=
11+
github.com/charmbracelet/huh v0.3.0 h1:CxPplWkgW2yUTDDG0Z4S5HH8SJOosWHd4LxCvi0XsKE=
12+
github.com/charmbracelet/huh v0.3.0/go.mod h1:fujUdKX8tC45CCSaRQdw789O6uaCRwx8l2NDyKfC4jA=
913
github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s=
1014
github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE=
1115
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY=
@@ -16,13 +20,17 @@ github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69
1620
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
1721
github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98=
1822
github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
23+
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
24+
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
1925
github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4=
2026
github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
2127
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
2228
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
2329
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
2430
github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b h1:1XF24mVaiu7u+CFywTdcDo2ie1pzzhwjt6RHqzpMU34=
2531
github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho=
32+
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
33+
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
2634
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
2735
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
2836
github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
@@ -37,11 +45,19 @@ github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f h1:MvTmaQdww/z0Q4wr
3745
github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
3846
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
3947
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
48+
golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
49+
golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
4050
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4151
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4252
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
4353
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
54+
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
55+
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4456
golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
4557
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
58+
golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
59+
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
4660
golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
4761
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
62+
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
63+
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=

tracegit

4.16 MB
Binary file not shown.

utils/extract_list.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package utils
22

33
import (
44
"bufio"
5+
"errors"
56
"fmt"
67
"log"
78
"os"
@@ -23,7 +24,7 @@ func ExtractList() ([]string, []string) {
2324

2425
workingDir := getPath(pathExist, binPath)
2526

26-
currentpath := binPath + "/../../trace.rb"
27+
currentpath := binPath + "/trace.rb"
2728
cmd := exec.Command("ruby", currentpath, workingDir)
2829

2930
stdout, err := cmd.StdoutPipe()
@@ -82,10 +83,14 @@ func ExtractList() ([]string, []string) {
8283

8384
func pathExist(binPath string) bool {
8485

85-
f, err := os.Stat(binPath + "/../../data/path")
86+
f, err := os.Stat(binPath + "/path")
8687
if err != nil {
87-
log.Fatal(err)
88-
return false
88+
if errors.Is(err, os.ErrNotExist) {
89+
return false
90+
} else {
91+
log.Fatal(err)
92+
return false
93+
}
8994
}
9095

9196
if f.Size() > 0 {
@@ -100,21 +105,16 @@ func getPath(pathExist bool, binPath string) string {
100105
var path string
101106

102107
if !pathExist {
103-
fmt.Println("Enter a path:")
104-
_, err := fmt.Scan(&path)
105-
if err != nil {
106-
log.Fatal(err)
107-
return ""
108-
}
108+
path = pathPrompt()
109109

110110
data := []byte(path)
111-
err2 := os.WriteFile(binPath+"/../../data/path", data, 0644)
112-
if err2 != nil {
111+
err := os.WriteFile(binPath+"/path", data, 0644)
112+
if err != nil {
113113
log.Fatal(err)
114114
}
115115

116116
} else {
117-
data, err := os.ReadFile(binPath + "/../../data/path")
117+
data, err := os.ReadFile(binPath + "/path")
118118
if err != nil {
119119
log.Fatal(err)
120120
}

utils/path_prompt.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package utils
2+
3+
import (
4+
"github.com/charmbracelet/huh"
5+
)
6+
7+
func pathPrompt() string {
8+
var path string
9+
10+
huh.NewInput().
11+
Title("Enter your code directory path").
12+
Prompt("path: ").
13+
Value(&path).
14+
Run()
15+
16+
return path
17+
}

0 commit comments

Comments
 (0)