summaryrefslogtreecommitdiff
path: root/deckctl.py
diff options
context:
space:
mode:
authorMark Powers <mark@marks.kitchen>2022-02-19 21:12:59 -0600
committerMark Powers <mark@marks.kitchen>2022-02-19 21:12:59 -0600
commit59728317c798082bee1ce3e8956d907f3f6540a3 (patch)
treef0f9d79ceb83f71271fb84eda6eb2a60e169064b /deckctl.py
Initial commit
Diffstat (limited to 'deckctl.py')
-rwxr-xr-xdeckctl.py51
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))