diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 20:18:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 20:18:28 +0000 |
commit | f8363b456f1ab31ee56abad579b215af195093d5 (patch) | |
tree | b1500c675c2e0a55fb75721a854e1510acf7c862 /examples/listdir.py | |
parent | Initial commit. (diff) | |
download | rich-f8363b456f1ab31ee56abad579b215af195093d5.tar.xz rich-f8363b456f1ab31ee56abad579b215af195093d5.zip |
Adding upstream version 9.11.0.upstream/9.11.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'examples/listdir.py')
-rw-r--r-- | examples/listdir.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/listdir.py b/examples/listdir.py new file mode 100644 index 0000000..bffc50a --- /dev/null +++ b/examples/listdir.py @@ -0,0 +1,35 @@ +""" +A very simple `ls` clone. + +If your terminal supports hyperlinks you should be able to launch files by clicking the filename +(usually with cmd / ctrl). + +""" + +import os +import sys + +from rich import print +from rich.columns import Columns +from rich.text import Text + +try: + root_path = sys.argv[1] +except IndexError: + print("Usage: python listdir.py DIRECTORY") +else: + + def make_filename_text(filename): + path = os.path.abspath(os.path.join(root_path, filename)) + text = Text(filename, style="bold blue" if os.path.isdir(path) else "default") + text.stylize(f"link file://{path}") + text.highlight_regex(r"\..*?$", "bold") + return text + + filenames = [ + filename for filename in os.listdir(root_path) if not filename.startswith(".") + ] + filenames.sort(key=lambda filename: filename.lower()) + filename_text = [make_filename_text(filename) for filename in filenames] + columns = Columns(filename_text, equal=True, column_first=True) + print(columns) |