diff --git a/.gitignore b/.gitignore index 61adaa3..60b4f94 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,8 @@ go.work.sum .env # Editor/IDE -# .idea/ -# .vscode/ +.idea/ +.vscode/ -gogit \ No newline at end of file +gitx +gitx.exe \ No newline at end of file diff --git a/README.md b/README.md index 752787c..5b0e064 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# gogit +# gitx A TUI Helper for learning git (VCS) diff --git a/go.mod b/go.mod index 82f6afb..2c99d05 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/bakayu/gogit +module github.com/gitxtui/gitx go 1.23 diff --git a/internal/git/git.go b/internal/git/git.go new file mode 100644 index 0000000..6e44f66 --- /dev/null +++ b/internal/git/git.go @@ -0,0 +1,15 @@ +package git + +import ( + "os/exec" +) + +// GetStatus executes `git status` and returns its output as a string. +func GetStatus() (string, error) { + cmd := exec.Command("git", "status") + output, err := cmd.CombinedOutput() + if err != nil { + return string(output), err + } + return string(output), nil +} diff --git a/internal/tui/tui.go b/internal/tui/tui.go new file mode 100644 index 0000000..1a8cf5c --- /dev/null +++ b/internal/tui/tui.go @@ -0,0 +1,34 @@ +package tui + +import ( + "github.com/gitxtui/gitx/internal/git" + "github.com/rivo/tview" +) + +// App represents the main application +type App struct { + *tview.Application +} + +// NewApp creates and configures the main tview application +func NewApp() *App { + // Get git status + status, err := git.GetStatus() + if err != nil { + // If git command fails, return error + status = err.Error() + } + + // Create TUI components + textView := tview.NewTextView(). + SetText(status). + SetScrollable(true) + + textView.SetBorder(true).SetTitle("Git Status") + + app := tview.NewApplication(). + SetRoot(textView, true). + SetFocus(textView) + + return &App{app} +} diff --git a/main.go b/main.go deleted file mode 100644 index c2aa022..0000000 --- a/main.go +++ /dev/null @@ -1,12 +0,0 @@ -package main - -import ( - "github.com/rivo/tview" -) - -func main() { - box := tview.NewBox().SetBorder(true).SetTitle("Hello, world!") - if err := tview.NewApplication().SetRoot(box, true).Run(); err != nil { - panic(err) - } -}