X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=devel%2Fnmbug%2Fnmbug-status;h=33ab626cfc3d8b928eec2d42f069cea310e4f83e;hb=d6204e83620a8217fc97de29947341bbbc772664;hp=e845c2a5c8f702cc5d988fa6ea16ba3b0e53e828;hpb=244f8739543dd2f6cde1188074fc4b32272e8446;p=notmuch diff --git a/devel/nmbug/nmbug-status b/devel/nmbug/nmbug-status index e845c2a5..33ab626c 100755 --- a/devel/nmbug/nmbug-status +++ b/devel/nmbug/nmbug-status @@ -109,9 +109,9 @@ def read_config(path=None, encoding=None): status = p.wait() if status != 0: raise ConfigError( - ("Missing status-config.json in branch '{branch}' of" - '{nmbgit}. Add the file or explicitly set --config.' - ).format(branch=branch, nmbgit=nmbhome)) + ("Missing {filename} in branch '{branch}' of {nmbgit}. " + 'Add the file or explicitly set --config.' + ).format(filename=filename, branch=branch, nmbgit=nmbhome)) config_json = config_bytes.decode(encoding) try: @@ -156,11 +156,20 @@ class Page (object): stream.write(self.footer) def _write_view(self, database, view, stream): + # sort order, default to oldest-first + sort_key = view.get('sort', 'oldest-first') + # dynamically accept all values in Query.SORT + sort_attribute = sort_key.upper().replace('-', '_') + try: + sort = getattr(notmuch.Query.SORT, sort_attribute) + except AttributeError: + raise ConfigError('Invalid sort setting for {}: {!r}'.format( + view['title'], sort_key)) if 'query-string' not in view: query = view['query'] view['query-string'] = ' and '.join(query) q = notmuch.Query(database, view['query-string']) - q.set_sort(notmuch.Query.SORT.OLDEST_FIRST) + q.set_sort(sort) threads = self._get_threads(messages=q.search_messages()) self._write_view_header(view=view, stream=stream) self._write_threads(threads=threads, stream=stream) @@ -309,7 +318,7 @@ args = parser.parse_args() try: config = read_config(path=args.config) except ConfigError as e: - print(e) + print(e, file=sys.stderr) sys.exit(1) header_template = config['meta'].get('header', ''' @@ -318,6 +327,15 @@ header_template = config['meta'].get('header', ''' {title} -

{title}

+

{title}

+

{blurb}

-

Views

+

Views

''') footer_template = config['meta'].get('footer', '''
-

Generated: {datetime} +

Generated: {datetime}

''')