X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;ds=sidebyside;f=devel%2Fnmbug%2Fnmbug-status;h=be3e28e7e60c5fbecd5d04a47ee8c69bc738f0ec;hb=a7e4d9a18fdd9dd0aa3f2ec257d17e364a732876;hp=d08ca08dc86445ef8026a594669970df09ce533c;hpb=16aa65ba2575fd504c31d9671d8c5150f8e8adf1;p=notmuch diff --git a/devel/nmbug/nmbug-status b/devel/nmbug/nmbug-status index d08ca08d..be3e28e7 100755 --- a/devel/nmbug/nmbug-status +++ b/devel/nmbug/nmbug-status @@ -6,50 +6,46 @@ # - python 2.6 for json # - argparse; either python 2.7, or install separately +from __future__ import print_function + +import codecs import datetime -import notmuch -import rfc822 +import email.utils +import locale import urllib import json import argparse import os +import sys import subprocess -# 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') +_ENCODING = locale.getpreferredencoding() or sys.getdefaultencoding() -args = parser.parse_args() -# read config from json file - -if args.config != None: - fp = open(args.config) -else: - nmbhome = os.getenv('NMBGIT', os.path.expanduser('~/.nmbug')) +def read_config(path=None, encoding=None): + "Read config from json file" + if not encoding: + encoding = _ENCODING + if path: + fp = open(path) + else: + nmbhome = os.getenv('NMBGIT', os.path.expanduser('~/.nmbug')) - # read only the first line from the pipe - sha1 = subprocess.Popen(['git', '--git-dir', nmbhome, - 'show-ref', '-s', 'config'], - stdout=subprocess.PIPE).stdout.readline() + # read only the first line from the pipe + sha1_bytes = subprocess.Popen( + ['git', '--git-dir', nmbhome, 'show-ref', '-s', 'config'], + stdout=subprocess.PIPE).stdout.readline() + sha1 = sha1_bytes.decode(encoding).rstrip() - sha1 = sha1.rstrip() + fp_byte_stream = subprocess.Popen( + ['git', '--git-dir', nmbhome, 'cat-file', 'blob', + sha1+':status-config.json'], + stdout=subprocess.PIPE).stdout + fp = codecs.getreader(encoding=encoding)(stream=fp_byte_stream) - fp = subprocess.Popen(['git', '--git-dir', nmbhome, - 'cat-file', 'blob', sha1+':status-config.json'], - stdout=subprocess.PIPE).stdout + return json.load(fp) -config = json.load(fp) - -if args.text: - output_format = 'text' -else: - output_format = 'html' class Thread: def __init__(self, last, lines): @@ -59,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) + 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 = '' @@ -79,13 +76,13 @@ def print_view(title, query, comment): lines = None if output_format == 'html': - print '
' - print query_string - print '' - print '