package cobol import ( "log" "os" "golang.org/x/term" ) var WIDTH int = 120 // getTerminalWidth returns the width of the active terminal. // If the output is not an interactive terminal (e.g., it's being piped to a file // or another command), it returns a default width and false. func getTerminalWidth() (int, bool) { // term.IsTerminal checks if the given file descriptor is connected to a terminal. // We use os.Stdout.Fd() to check the standard output. if term.IsTerminal(int(os.Stdout.Fd())) { var err error // term.GetSize returns the dimensions of the given terminal. WIDTH, _, err = term.GetSize(int(os.Stdout.Fd())) if err != nil { // If we can't get the size for some reason, fall back to the default. log.Printf("could not get terminal size: %v", err) return WIDTH, false } return WIDTH, true } // If it's not a terminal, return the default width. return WIDTH, false } func TerminalCut(cut string) { i, _ := getTerminalWidth() log.Printf("%s\n", cut[0:i]) }