X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=devel%2Fnmbug%2Fnmbug-status;h=3aa83b62aa7cccecf6f8001707c229737a887481;hb=a6ff03df3f8fece526536f44a22af2041db021ef;hp=6dfbe4d8c5c0a5fe6f2a23ba1dac8cbe0840b993;hpb=b7e6d2cc3034043781db619517891b7c8553f760;p=notmuch diff --git a/devel/nmbug/nmbug-status b/devel/nmbug/nmbug-status index 6dfbe4d8..3aa83b62 100755 --- a/devel/nmbug/nmbug-status +++ b/devel/nmbug/nmbug-status @@ -47,38 +47,6 @@ def read_config(path=None, encoding=None): return json.load(fp) -# parse command line arguments - -parser = argparse.ArgumentParser() -parser.add_argument('--text', help='output plain text format', - action='store_true') -parser.add_argument('--config', help='load config from given file') -parser.add_argument('--list-views', help='list views', - action='store_true') -parser.add_argument('--get-query', help='get query for view') - -args = parser.parse_args() - -config = read_config(path=args.config) - -if args.list_views: - for view in config['views']: - print(view['title']) - sys.exit(0) -elif args.get_query != None: - for view in config['views']: - if args.get_query == view['title']: - print(' and '.join(view['query'])) - sys.exit(0) -else: - # only import notmuch if needed - import notmuch - -if args.text: - output_format = 'text' -else: - output_format = 'html' - class Thread: def __init__(self, last, lines): self.last = last @@ -87,16 +55,17 @@ class Thread: def join_utf8_with_newlines(self): return '\n'.join( (line.encode('utf-8') for line in self.lines) ) + def output_with_separator(threadlist, sep): outputs = (thread.join_utf8_with_newlines() for thread in threadlist) print(sep.join(outputs)) -headers = ['date', 'from', 'subject'] -def print_view(title, query, comment): +def print_view(database, title, query, comment, + headers=('date', 'from', 'subject')): query_string = ' and '.join(query) - q_new = notmuch.Query(db, query_string) + q_new = notmuch.Query(database, query_string) q_new.set_sort(notmuch.Query.SORT.OLDEST_FIRST) last_thread_id = '' @@ -174,9 +143,44 @@ def print_view(title, query, comment): else: output_with_separator(threadlist, '\n\n') + +# parse command line arguments + +parser = argparse.ArgumentParser() +parser.add_argument('--text', help='output plain text format', + action='store_true') +parser.add_argument('--config', help='load config from given file', + metavar='PATH') +parser.add_argument('--list-views', help='list views', + action='store_true') +parser.add_argument('--get-query', help='get query for view', + metavar='VIEW') + +args = parser.parse_args() + +config = read_config(path=args.config) + +if args.list_views: + for view in config['views']: + print(view['title']) + sys.exit(0) +elif args.get_query != None: + for view in config['views']: + if args.get_query == view['title']: + print(' and '.join(view['query'])) + sys.exit(0) +else: + # only import notmuch if needed + import notmuch + +if args.text: + output_format = 'text' +else: + output_format = 'html' + # main program -db = notmuch.Database(mode=notmuch.Database.MODE.READ_WRITE) +db = notmuch.Database(mode=notmuch.Database.MODE.READ_ONLY) if output_format == 'html': print(''' @@ -186,19 +190,18 @@ if output_format == 'html': Notmuch Patches -''') - print('

Notmuch Patches

') - print('Generated: %s
' % datetime.datetime.utcnow().date()) - print('For more infomation see nmbug') - - print('

Views

') - print('