[PATCH v2] VIM: Use notmuch CLI for config

Subject: [PATCH v2] VIM: Use notmuch CLI for config

Date: Thu, 2 Oct 2014 16:47:15 -0700

To: notmuch@notmuchmail.org

Cc:

From: Ian Main


This patch switches from reading .notmuch-config directly to using
the CLI the same way that emacs does it.  It actually uses less code
and is probably less error prone.

    Ian
---

This update changes result to be '' instead of nil
by default so missing config items won't cause an error.

 vim/notmuch.vim | 31 ++++++++++++-------------------
 1 file changed, 12 insertions(+), 19 deletions(-)

diff --git a/vim/notmuch.vim b/vim/notmuch.vim
index 331e930..b251af6 100644
--- a/vim/notmuch.vim
+++ b/vim/notmuch.vim
@@ -471,28 +471,21 @@ ruby << EOF
 	$searches = []
 	$threads = []
 	$messages = []
-	$config = {}
 	$mail_installed = defined?(Mail)
 
-	def get_config
-		group = nil
-		config = ENV['NOTMUCH_CONFIG'] || '~/.notmuch-config'
-		File.open(File.expand_path(config)).each do |l|
-			l.chomp!
-			case l
-			when /^\[(.*)\]$/
-				group = $1
-			when ''
-			when /^(.*)=(.*)$/
-				key = "%s.%s" % [group, $1]
-				value = $2
-				$config[key] = value
-			end
-		end
+	def get_config_item(item)
+		result = ''
+		IO.popen(['notmuch', 'config', 'get', item]) { |out|
+			result = out.read
+		}
+		return result.rstrip
+	end
 
-		$db_name = $config['database.path']
-		$email_name = $config['user.name']
-		$email_address = $config['user.primary_email']
+	def get_config
+		$db_name = get_config_item('database.path')
+		$email_name = get_config_item('user.name')
+		$email_address = get_config_item('user.primary_email')
+		$email_name = get_config_item('user.name')
 		$email = "%s <%s>" % [$email_name, $email_address]
 	end
 
-- 
1.9.3


Thread: