From 8cdc634004cd6393c4e83942c4c51b4ef7222fca Mon Sep 17 00:00:00 2001 From: Dhruva Sagar Date: Sat, 20 Apr 2013 16:51:42 +0200 Subject: [PATCH] Add RVM segment --- powerline/segments/vim.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/powerline/segments/vim.py b/powerline/segments/vim.py index cb05b74d..86b9dd87 100644 --- a/powerline/segments/vim.py +++ b/powerline/segments/vim.py @@ -8,12 +8,13 @@ try: except ImportError: vim = {} # NOQA +from subprocess import Popen, PIPE from powerline.bindings.vim import vim_get_func, getbufvar from powerline.theme import requires_segment_info from powerline.lib import add_divider_highlight_group from powerline.lib.vcs import guess from powerline.lib.humanize_bytes import humanize_bytes -from powerline.lib.threaded import KwThreadedSegment, with_docstring +from powerline.lib.threaded import ThreadedSegment, KwThreadedSegment, with_docstring from powerline.lib import wraps_saveargs as wraps from collections import defaultdict @@ -432,3 +433,26 @@ file_vcs_status = with_docstring(FileVCSStatusSegment(), Highlight groups used: ``file_vcs_status``. ''') + + +class RVMSegment(ThreadedSegment): + interval = 10 + + def update(self, old_rvm_current): + try: + p = Popen(['rvm', 'current'], shell=False, stdout=PIPE, stderr=PIPE) + p.stderr.close() + return p.stdout.read().rstrip() + except OSError: + return None + + def render(self, update_value, **kwargs): + return [{'contents': update_value, + 'highlight_group': ['ruby_version']}] + + +rvm_current = with_docstring(RVMSegment(), +'''Return the rvm current ruby name. + +Highlight groups used: ``ruby_version``. +''')