feat: add --plain flag for CI/headless support

This commit is contained in:
Tommy Guo 2026-02-07 18:27:48 -05:00
parent 95e8d3a833
commit 9b776679ca

View File

@ -18,13 +18,14 @@ func main() {
plain := flag.Bool("plain", false, "Print a plain, non-interactive summary and exit") 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") w := os.Stderr
fmt.Fprintf(os.Stderr, "\nFlags:\n") fmt.Fprintln(w, "Usage: difi [flags] [target-branch]")
fmt.Fprintln(w, "\nFlags:")
flag.PrintDefaults() flag.PrintDefaults()
fmt.Fprintf(os.Stderr, "\nExamples:\n") fmt.Fprintln(w, "\nExamples:")
fmt.Fprintf(os.Stderr, " difi # Diff against main\n") fmt.Fprintln(w, " difi # Diff against default")
fmt.Fprintf(os.Stderr, " difi develop # Diff against develop\n") fmt.Fprintln(w, " difi develop # Diff against develop")
fmt.Fprintf(os.Stderr, " difi HEAD~1 # Diff against last commit\n") fmt.Fprintln(w, " difi HEAD~1 # Diff against last commit")
} }
flag.Parse() flag.Parse()
@ -40,6 +41,7 @@ func main() {
} }
if *plain { if *plain {
// Uses --name-status for a concise, machine-readable summary suitable for CI
cmd := exec.Command("git", "diff", "--name-status", fmt.Sprintf("%s...HEAD", target)) cmd := exec.Command("git", "diff", "--name-status", fmt.Sprintf("%s...HEAD", target))
cmd.Stdout = os.Stdout cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr cmd.Stderr = os.Stderr