add: --plain non-interactive mode

This commit is contained in:
Tommy Guo 2026-02-06 19:26:38 -05:00
parent bcbf831b70
commit f60216f7c3

View File

@ -4,6 +4,7 @@ import (
"flag" "flag"
"fmt" "fmt"
"os" "os"
"os/exec"
tea "github.com/charmbracelet/bubbletea" tea "github.com/charmbracelet/bubbletea"
"github.com/oug-t/difi/internal/config" "github.com/oug-t/difi/internal/config"
@ -14,6 +15,7 @@ var version = "dev"
func main() { func main() {
showVersion := flag.Bool("version", false, "Show version") showVersion := flag.Bool("version", false, "Show version")
plain := flag.Bool("plain", false, "Print a plain, non-interactive summary and exit")
flag.Usage = func() { flag.Usage = func() {
fmt.Fprintf(os.Stderr, "Usage: difi [flags] [target-branch]\n") fmt.Fprintf(os.Stderr, "Usage: difi [flags] [target-branch]\n")
@ -37,6 +39,16 @@ func main() {
target = flag.Arg(0) target = flag.Arg(0)
} }
if *plain {
cmd := exec.Command("git", "diff", "--name-status", fmt.Sprintf("%s...HEAD", target))
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
os.Exit(1)
}
os.Exit(0)
}
cfg := config.Load() cfg := config.Load()
p := tea.NewProgram(ui.NewModel(cfg, target), tea.WithAltScreen()) p := tea.NewProgram(ui.NewModel(cfg, target), tea.WithAltScreen())