aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Spaeth <sebastian@sspaeth.de>2010-03-24 11:08:43 +0100
committerSebastian Spaeth <sebastian@sspaeth.de>2010-03-24 11:08:43 +0100
commit9b23eb2baae1fd5eb72b50e79e2c75227c5b76ab (patch)
tree1cf0addbbc9e50492da2316baf674586db5eadd1
parent2a14b523b0982a6641e45b48099e65dfe1bb4f6a (diff)
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.
-rwxr-xr-xnotmuch21
1 files changed, 15 insertions, 6 deletions
diff --git a/notmuch b/notmuch
index 92f68150..2a1540a1 100755
--- a/notmuch
+++ b/notmuch
@@ -106,13 +106,13 @@ def quote_query_line(argv):
if __name__ == '__main__':
# Handle command line options
- # No option
#-------------------------------------
+ # No option given, print USAGE and exit
if len(sys.argv) == 1:
print USAGE
#-------------------------------------
elif sys.argv[1] == 'setup':
- """ Interactively setup notmuch for first use. """
+ """Interactively setup notmuch for first use."""
print "Not implemented."
#-------------------------------------
elif sys.argv[1] == 'new':
@@ -124,6 +124,19 @@ if __name__ == '__main__':
if len(sys.argv) == 2: print HELPTEXT
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':
db = Database()
if len(sys.argv) == 2:
@@ -137,10 +150,6 @@ if __name__ == '__main__':
for msg in m:
print(msg.format_as_text())
#-------------------------------------
- elif sys.argv[1] == 'new':
- #TODO: handle --verbose
- print "Not implemented."
- #-------------------------------------
elif sys.argv[1] == 'count':
if len(sys.argv) == 2:
#no further search term, count all