From 742d340eaa8bd93f6814a1dd375a22152f4404ad Mon Sep 17 00:00:00 2001 From: sinner Date: Thu, 7 May 2026 23:00:27 +0000 Subject: feat: add stdin support and output redirection for batch queries across all commands --- internal/tui/person_selector.go | 5 +++-- internal/tui/wizard.go | 4 ++-- internal/utils/tty_unix.go | 9 +++++++++ internal/utils/tty_windows.go | 13 +++++++++++++ 4 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 internal/utils/tty_unix.go create mode 100644 internal/utils/tty_windows.go (limited to 'internal') diff --git a/internal/tui/person_selector.go b/internal/tui/person_selector.go index 359c7b3..229353b 100644 --- a/internal/tui/person_selector.go +++ b/internal/tui/person_selector.go @@ -3,9 +3,10 @@ package tui import ( "encoding/json" "fmt" - "os" "strings" + "git.db.org.ai/dborg/internal/utils" + tea "github.com/charmbracelet/bubbletea" "github.com/charmbracelet/lipgloss" ) @@ -409,7 +410,7 @@ func RunPersonSelector(searchData map[string]interface{}) (int, error) { return -1, err } - tty, err := os.OpenFile("/dev/tty", os.O_RDWR, 0) + tty, err := utils.OpenTTY() if err != nil { return -1, fmt.Errorf("failed to open terminal: %w", err) } diff --git a/internal/tui/wizard.go b/internal/tui/wizard.go index 3bbad2e..8a641c0 100644 --- a/internal/tui/wizard.go +++ b/internal/tui/wizard.go @@ -2,10 +2,10 @@ package tui import ( "fmt" - "os" "strings" "git.db.org.ai/dborg/internal/formatter" + "git.db.org.ai/dborg/internal/utils" "github.com/charmbracelet/bubbles/textinput" tea "github.com/charmbracelet/bubbletea" "github.com/charmbracelet/lipgloss" @@ -472,7 +472,7 @@ func (m WizardModel) GetReportData() map[string]interface{} { } func RunSkiptraceWizard(searchFn SearchFunc, reportFn ReportFunc, jsonOutput bool) error { - tty, err := os.OpenFile("/dev/tty", os.O_RDWR, 0) + tty, err := utils.OpenTTY() if err != nil { return fmt.Errorf("failed to open terminal: %w", err) } diff --git a/internal/utils/tty_unix.go b/internal/utils/tty_unix.go new file mode 100644 index 0000000..c344c0f --- /dev/null +++ b/internal/utils/tty_unix.go @@ -0,0 +1,9 @@ +//go:build !windows + +package utils + +import "os" + +func OpenTTY() (*os.File, error) { + return os.OpenFile("/dev/tty", os.O_RDWR, 0) +} diff --git a/internal/utils/tty_windows.go b/internal/utils/tty_windows.go new file mode 100644 index 0000000..f40dbda --- /dev/null +++ b/internal/utils/tty_windows.go @@ -0,0 +1,13 @@ +//go:build windows + +package utils + +import "os" + +func OpenTTY() (*os.File, error) { + conin, err := os.OpenFile("CONIN$", os.O_RDWR, 0) + if err != nil { + return nil, err + } + return conin, nil +} -- cgit v1.2.3