#!/usr/bin/env python """This is a notmuch implementation in python. It's goal is to allow running the test suite on the cnotmuch python bindings.""" import sys, os from cnotmuch.notmuch import Database, Query #TODO Handle variable: NOTMUCH-CONFIG #------------------------------------------------------------------------- HELPTEXT="""The notmuch mail system. Usage: notmuch [args...] Where and [args...] are as follows: setup Interactively setup notmuch for first use. new [--verbose] Find and import new messages to the notmuch database. search [options...] [...] Search for messages matching the given search terms. show [...] Show all messages matching the search terms. count [...] Count messages matching the search terms. reply [options...] [...] Construct a reply template for a set of messages. tag +|- [...] [--] [...] Add/remove tags for all messages matching the search terms. dump [] Create a plain-text dump of the tags for each message. restore Restore the tags from the given dump file (see 'dump'). search-tags [ [...] ] List all tags found in the database or matching messages. help [] This message, or more detailed help for the named command. Use "notmuch help " for more details on each command. And "notmuch help search-terms" for the common search-terms syntax. """ #------------------------------------------------------------------------- #TODO: replace the dynamic pieces USAGE="""Notmuch is configured and appears to have a database. Excellent! At this point you can start exploring the functionality of notmuch by using commands such as: notmuch search tag:inbox notmuch search to:"Sebastian Spaeth" notmuch search from:"Sebastian@SSpaeth.de" notmuch search subject:"my favorite things" See "notmuch help search" for more details. You can also use "notmuch show" with any of the thread IDs resulting from a search. Finally, you may want to explore using a more sophisticated interface to notmuch such as the emacs interface implemented in notmuch.el or any other interface described at http://notmuchmail.org And don't forget to run "notmuch new" whenever new mail arrives. Have fun, and may your inbox never have much mail. """ #------------------------------------------------------------------------- if __name__ == '__main__': # Handle command line options # No option if len(sys.argv) == 1: print USAGE elif sys.argv[1] == 'setup': """ Interactively setup notmuch for first use. """ print "Not implemented." elif sys.argv[1] == 'help': if len(sys.argv) == 2: print HELPTEXT else: print "Not implemented" elif sys.argv[1] == 'new': #TODO: handle --verbose print "Not implemented." elif sys.argv[1] == 'search-tags': if len(sys.argv) == 2: print("\n".join(Database().get_all_tags())) else: print "Not implemented" else: # unknown command print "Error: Unknown command '%s' (see \"notmuch help\")" % sys.argv[1] #TODO: implement """ search [options...] [...] Search for messages matching the given search terms. show [...] Show all messages matching the search terms. count [...] Count messages matching the search terms. reply [options...] [...] Construct a reply template for a set of messages. tag +|- [...] [--] [...] Add/remove tags for all messages matching the search terms. dump [] Create a plain-text dump of the tags for each message. restore search-tags [ [...] ] List all tags found in the database or matching messages. """