notmuch: Implement 'notmuch search'

This passes all search tests for the notmuch test suite. We don't have the nice
recent date formatting, no --format and no --sort option implemented though.
This commit is contained in:
Sebastian Spaeth 2010-03-24 11:08:43 +01:00
parent 2a14b523b0
commit 9b23eb2baa

21
notmuch
View file

@ -106,13 +106,13 @@ def quote_query_line(argv):
if __name__ == '__main__': if __name__ == '__main__':
# Handle command line options # Handle command line options
# No option
#------------------------------------- #-------------------------------------
# No option given, print USAGE and exit
if len(sys.argv) == 1: if len(sys.argv) == 1:
print USAGE print USAGE
#------------------------------------- #-------------------------------------
elif sys.argv[1] == 'setup': elif sys.argv[1] == 'setup':
""" Interactively setup notmuch for first use. """ """Interactively setup notmuch for first use."""
print "Not implemented." print "Not implemented."
#------------------------------------- #-------------------------------------
elif sys.argv[1] == 'new': elif sys.argv[1] == 'new':
@ -124,6 +124,19 @@ if __name__ == '__main__':
if len(sys.argv) == 2: print HELPTEXT if len(sys.argv) == 2: print HELPTEXT
else: print "Not implemented" else: print "Not implemented"
#------------------------------------- #-------------------------------------
elif sys.argv[1] == 'search':
db = Database()
if len(sys.argv) == 2:
#no further search term
querystr=''
else:
#mangle arguments wrapping terms with spaces in quotes
querystr = quote_query_line(sys.argv[2:])
logging.debug("search "+querystr)
t = Query(db,querystr).search_threads()
for thread in t:
print(str(thread))
#-------------------------------------
elif sys.argv[1] == 'show': elif sys.argv[1] == 'show':
db = Database() db = Database()
if len(sys.argv) == 2: if len(sys.argv) == 2:
@ -137,10 +150,6 @@ if __name__ == '__main__':
for msg in m: for msg in m:
print(msg.format_as_text()) print(msg.format_as_text())
#------------------------------------- #-------------------------------------
elif sys.argv[1] == 'new':
#TODO: handle --verbose
print "Not implemented."
#-------------------------------------
elif sys.argv[1] == 'count': elif sys.argv[1] == 'count':
if len(sys.argv) == 2: if len(sys.argv) == 2:
#no further search term, count all #no further search term, count all