]> git.notmuchmail.org Git - notmuch/blobdiff - cnotmuch/globals.py
Find the notmuch shared lib rather than hardode a location
[notmuch] / cnotmuch / globals.py
index ff765167a7974ec0bd0ade1c102e128fbe920533..611c29ed8fcee4f93cc27503d81536801c935c37 100644 (file)
@@ -1,7 +1,14 @@
 from ctypes import CDLL, c_char_p, c_int
+from ctypes.util import find_library
+
+#-----------------------------------------------------------------------------
 #package-global instance of the notmuch library
 #TODO: lazy load this on first access?
-nmlib = CDLL('/usr/local/lib/libnotmuch.so')
+so = find_library('notmuch')
+if so is None:
+  raise ImportError("Could not find shared 'notmuch' library.")
+nmlib = CDLL(so)
+#-----------------------------------------------------------------------------
 
 class STATUS(object):
   SUCCESS = 0
@@ -14,7 +21,7 @@ class STATUS(object):
   NULL_POINTER = 7
   TAG_TOO_LONG = 8
   UNBALANCED_FREEZE_THAW = 9
-  LAST_STATUS = 10
+  NOT_INITIALIZED = 10
 
   """Get a string representation of a notmuch_status_t value."""
   status2str = nmlib.notmuch_status_to_string
@@ -26,6 +33,9 @@ class STATUS(object):
 
   def __str__(self):
       """Get a string representation of a notmuch_status_t value."""   
+      # define strings for custom error messages
+      if self._status == STATUS.NOT_INITIALIZED:
+        return "Operation on uninitialized DB/MSG/THREAD impossible."
       return str(STATUS.status2str(self._status))
 
 class NotmuchError(Exception):