diff options
| author | Kujtim Hoxha <[email protected]> | 2025-04-13 14:37:05 +0200 |
|---|---|---|
| committer | Kujtim Hoxha <[email protected]> | 2025-04-21 13:41:27 +0200 |
| commit | cdc5f209dccdc980714f2ca1aeb52133d6e93cce (patch) | |
| tree | 02fe97994dfce7f2e842be7b4c5170f534220eee /internal/git/diff.go | |
| parent | 3ad983db0f2c08826d56cb5de274d706c95b3353 (diff) | |
| download | opencode-cdc5f209dccdc980714f2ca1aeb52133d6e93cce.tar.gz opencode-cdc5f209dccdc980714f2ca1aeb52133d6e93cce.zip | |
cleanup diff, cleanup agent
Diffstat (limited to 'internal/git/diff.go')
| -rw-r--r-- | internal/git/diff.go | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/internal/git/diff.go b/internal/git/diff.go index d87956f01..2ab139642 100644 --- a/internal/git/diff.go +++ b/internal/git/diff.go @@ -11,7 +11,6 @@ import ( "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/plumbing/object" - "github.com/kujtimiihoxha/termai/internal/config" ) type DiffStats struct { @@ -197,32 +196,32 @@ func isSplitDiffsAvailable() bool { } func formatWithSplitDiffs(diffText string, width int) (string, error) { - var cmd *exec.Cmd + args := []string{ + "--color", + } - appCfg := config.Get() - appWd := config.WorkingDirectory() - script := filepath.Join( - appWd, - appCfg.Data.Directory, - "diff", - "index.mjs", - ) + var diffCmd *exec.Cmd - cmd = exec.Command("node", script, "--color") + if _, err := exec.LookPath("git-split-diffs-opencode"); err == nil { + fullArgs := append([]string{"git-split-diffs-opencode"}, args...) + diffCmd = exec.Command(fullArgs[0], fullArgs[1:]...) + } else { + npxArgs := append([]string{"git-split-diffs-opencode"}, args...) + diffCmd = exec.Command("npx", npxArgs...) + } - cmd.Env = append(os.Environ(), fmt.Sprintf("COLUMNS=%d", width)) + diffCmd.Env = append(os.Environ(), fmt.Sprintf("DIFF_COLUMNS=%d", width)) - cmd.Stdin = strings.NewReader(diffText) + diffCmd.Stdin = strings.NewReader(diffText) var out bytes.Buffer - cmd.Stdout = &out + diffCmd.Stdout = &out var stderr bytes.Buffer - cmd.Stderr = &stderr + diffCmd.Stderr = &stderr - err := cmd.Run() - if err != nil { - return "", fmt.Errorf("git-split-diffs error: %v, stderr: %s", err, stderr.String()) + if err := diffCmd.Run(); err != nil { + return "", fmt.Errorf("git-split-diffs-opencode error: %w, stderr: %s", err, stderr.String()) } return out.String(), nil |
