diff options
author | Mark Powers <mark@marks.kitchen> | 2022-02-19 21:12:59 -0600 |
---|---|---|
committer | Mark Powers <mark@marks.kitchen> | 2022-02-19 21:12:59 -0600 |
commit | 59728317c798082bee1ce3e8956d907f3f6540a3 (patch) | |
tree | f0f9d79ceb83f71271fb84eda6eb2a60e169064b /deckctl.py |
Initial commit
Diffstat (limited to 'deckctl.py')
-rwxr-xr-x | deckctl.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/deckctl.py b/deckctl.py new file mode 100755 index 0000000..cce2768 --- /dev/null +++ b/deckctl.py @@ -0,0 +1,51 @@ +#!/usr/bin/python3 + +import subprocess, re +def get_stacks(board): + return subprocess.check_output( + ['/home/mark/go/bin/deckctl', 'list', 'stacks', '--board', board], + encoding='UTF-8') +def get_cards(stack, board): + return subprocess.check_output( + ['/home/mark/go/bin/deckctl', 'list', 'cards', '--stack', stack, '--board', board], + encoding='UTF-8') + +def get_item_or_empty(lst, index): + if index < len(lst): + return lst[index] + return "" + +board = "School" +stack_output = get_stacks(board) +stacks = [] +all_cards = [] +for line in stack_output.splitlines(): + if re.search('^\s+.+', line): + stack = line.strip() + stacks.append(stack) +for stack in stacks: + cards = [] + try: + card_output = get_cards(stack, board) + for card_line in card_output.splitlines(): + if re.search('^\s+.+', card_line): + card = card_line.strip() + cards.append(card) + except subprocess.CalledProcessError as exc: + continue + finally: + all_cards.append(cards) +max_cards=0 +for cards in all_cards: + if len(cards) > max_cards: + max_cards = len(cards) +print("-"*(17 * len(stacks) + 1)) +for stack in stacks: + print(f"|{stack:16}", end ="") +print("|") +print("-"*(17 * len(stacks) + 1)) +for i in range(max_cards): + for cards in all_cards: + print(f"|{get_item_or_empty(cards, i):16}", end ="") + print("|") +print("-"*(17 * len(stacks) + 1)) |