Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions changelog.d/20260220_181030_sirosen_folded_table.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
### Enhancements

* When using table output on narrow terminals, the Globus CLI will now stack
table elements in a new "folded table" layout. This behavior is only used
when the output device is a TTY. To disable the new output altogether, users
can set `GLOBUS_CLI_FOLD_TABLES=0`.
13 changes: 11 additions & 2 deletions src/globus_cli/termio/_display.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,16 @@
import click
import globus_sdk

from .context import outformat_is_json, outformat_is_text, outformat_is_unix
from .context import (
fold_tables,
outformat_is_json,
outformat_is_text,
outformat_is_unix,
)
from .field import Field
from .printers import (
CustomPrinter,
FoldedTablePrinter,
JsonPrinter,
Printer,
RecordListPrinter,
Expand Down Expand Up @@ -172,7 +178,10 @@ def _resolve_printer(

_assert_iterable(data)
if text_mode == self.TABLE:
return TablePrinter(fields)
if fold_tables():
return FoldedTablePrinter(fields)
else:
return TablePrinter(fields)
if text_mode == self.RECORD_LIST:
return RecordListPrinter(fields)

Expand Down
5 changes: 5 additions & 0 deletions src/globus_cli/termio/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,8 @@ def term_is_interactive() -> bool:
return True

return os.getenv("PS1") is not None


def fold_tables() -> bool | None:
val = os.getenv("GLOBUS_CLI_FOLD_TABLES")
return val is None or utils.str2bool(val)
2 changes: 2 additions & 0 deletions src/globus_cli/termio/printers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from .base import Printer
from .custom_printer import CustomPrinter
from .folded_table_printer import FoldedTablePrinter
from .json_printer import JsonPrinter
from .record_printer import RecordListPrinter, RecordPrinter
from .table_printer import TablePrinter
Expand All @@ -11,6 +12,7 @@
"JsonPrinter",
"UnixPrinter",
"TablePrinter",
"FoldedTablePrinter",
"RecordPrinter",
"RecordListPrinter",
)
Loading