From 16d08af6899bbd99bc857964917303699c879f41 Mon Sep 17 00:00:00 2001 From: Derek Stobbe Date: Sat, 26 Jan 2013 23:23:15 -0700 Subject: [PATCH] Implement 'braindump ls' command to list topics --- braindump/cmdline.py | 10 +++++++++- braindump/core.py | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/braindump/cmdline.py b/braindump/cmdline.py index cbaa596..198d461 100644 --- a/braindump/cmdline.py +++ b/braindump/cmdline.py @@ -2,9 +2,11 @@ braindump - record what's on your mind Usage: + braindump ls braindump [options] [TOPIC] Arguments: + ls Output a list of topic files TOPIC Subject to braindump on, determines filename [default: braindump] Options: @@ -53,7 +55,13 @@ def main(): dumper = FSDumper(settings) topic = arguments['TOPIC'] if arguments['TOPIC'] is not None else settings['default_topic'] - if arguments['-m'] is not None: + if arguments['ls'] is True: + topics = dumper.list_topics() + output = '{0} braindump topics:'.format(len(topics)) + for topic in topics: + output += '\n- {0}'.format(topic) + print output + elif arguments['-m'] is not None: dumper.quick_add(topic, arguments['-m']) else: dumper.edit_topic(topic) diff --git a/braindump/core.py b/braindump/core.py index 47be1e7..a84283e 100644 --- a/braindump/core.py +++ b/braindump/core.py @@ -3,6 +3,7 @@ import sys import os from subprocess import call, Popen +from glob import glob class FSDumper(object): @@ -23,6 +24,13 @@ def quick_add(self, topic, message): def edit_topic(self, topic): self._launch_editor(self.settings['editor'], self._get_topic_filename(topic)) + def list_topics(self): + topic_files = glob('{0}/*{1}'.format(self.settings['braindump_dir'], self.settings['file_ext'])) + topics = [] + for topic in topic_files: + topics.append(os.path.splitext(os.path.basename(topic))[0]) + return topics + def _get_topic_filename(self, topic, full=True): filename = topic + self.settings['file_ext']