]> git.walde.dev - punch/commitdiff
Use colored bullets on list
authorDustin Walde <redacted>
Sat, 23 Sep 2023 03:56:37 +0000 (20:56 -0700)
committerDustin Walde <redacted>
Sat, 23 Sep 2023 03:56:37 +0000 (20:56 -0700)
src/punch.py

index e19558f715376886b48c0879ef7563987b6e8ffc..ada20ae5cfb4714d37c569bf0794ad60d30a8554 100644 (file)
@@ -25,6 +25,18 @@ logging.getLogger().addHandler(logging.StreamHandler(sys.stdout))
 logger = logging.getLogger(__name__)
 
 
+def col_str_tuple(col):
+    if len(col) == 4:
+        return (int(col[1]*2, 16),
+                int(col[2]*2, 16),
+                int(col[3]*2, 16))
+    elif len(col) == 7:
+        return (int(col[1:3], 16),
+                int(col[3:5], 16),
+                int(col[5:],  16))
+    else:
+        return (0,0,0)
+
 def print_usage(command: Optional[str] = None):
     if command is None:
         print("Punch usage:")
@@ -66,14 +78,16 @@ def list_all(puncher: Puncher) -> None:
         category, depth = stack.pop()
         if depth >= 0:
             print("\t"*depth, end='')
+            col = col_str_tuple(category.color)
+            col_str = f'\033[38;2;{col[0]};{col[1]};{col[2]}m●\033[39m'
             if category.is_group:
-                print('> ' + category.name)
+                print(f'{col_str} ' + category.name)
             else:
                 last_entry = puncher.get_last_entry(category.abbr)
                 if last_entry is None or last_entry.is_complete:
-                    print('| ' + category.abbr + "\t" + category.name)
+                    print(f'{col_str} ' + category.abbr + "\t" + category.name)
                 else:
-                    print('| ' + category.abbr + "\t" + category.name
+                    print(f'{col_str} ' + category.abbr + "\t" + category.name
                           + f"\t punched in at {last_entry.t_in}")
         if category.children is not None:
             for child in reversed(category.children):