From 65e358dee20ea07286ddb13c56d207952b6b7fbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kim=20Silkeb=C3=A6kken?= Date: Sat, 19 Jan 2013 17:01:01 +0100 Subject: [PATCH] Move terminal and tmux segments into common module This should ideally be renamed to something else since it's not strictly an extension. A better module naming scheme could be something like: powerline.segments.ext.{extension} powerline.segments.common This would move all segments out of their respective extension directory, and might be a bit confusing. The ext directories may also need some changes to make this work properly. --- powerline/ext/common/__init__.py | 0 powerline/ext/{tmux => common}/segments.py | 40 ++++++++++++++++++++ powerline/ext/terminal/segments.py | 44 ---------------------- powerline/themes/terminal/default.json | 1 + powerline/themes/tmux/default.json | 2 +- 5 files changed, 42 insertions(+), 45 deletions(-) create mode 100644 powerline/ext/common/__init__.py rename powerline/ext/{tmux => common}/segments.py (79%) delete mode 100644 powerline/ext/terminal/segments.py diff --git a/powerline/ext/common/__init__.py b/powerline/ext/common/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/powerline/ext/tmux/segments.py b/powerline/ext/common/segments.py similarity index 79% rename from powerline/ext/tmux/segments.py rename to powerline/ext/common/segments.py index 2703fb20..85435b06 100644 --- a/powerline/ext/tmux/segments.py +++ b/powerline/ext/common/segments.py @@ -1,7 +1,10 @@ # -*- coding: utf-8 -*- import os +import re +import socket +from powerline.lib.vcs import guess from powerline.lib import memoize # Weather condition code descriptions available at http://developer.yahoo.com/weather/#codes @@ -18,6 +21,43 @@ weather_conditions_codes = { } +def hostname(): + if not os.environ.get('SSH_CLIENT'): + return None + return socket.gethostname() + + +def user(): + user = os.environ.get('USER') + euid = os.geteuid() + return { + 'contents': user, + 'highlight': 'user' if euid != 0 else ['superuser', 'user'], + } + + +def branch(): + repo = guess(os.path.abspath(os.getcwd())) + if repo: + return repo.branch() + return None + + +def cwd(dir_shorten_len=None, dir_limit_depth=None): + cwd = os.getcwdu() + home = os.environ.get('HOME') + if home: + cwd = re.sub('^' + re.escape(home), '~', cwd, 1) + cwd_split = cwd.split(os.sep) + cwd_split_len = len(cwd_split) + if cwd_split_len > dir_limit_depth + 1: + del(cwd_split[0:-dir_limit_depth]) + cwd_split.insert(0, u'⋯') + cwd = [i[0:dir_shorten_len] if dir_shorten_len and i else i for i in cwd_split[:-1]] + [cwd_split[-1]] + cwd = os.path.join(*cwd) + return cwd + + def date(format='%Y-%m-%d'): from datetime import datetime return datetime.now().strftime(format) diff --git a/powerline/ext/terminal/segments.py b/powerline/ext/terminal/segments.py deleted file mode 100644 index 81ffedc5..00000000 --- a/powerline/ext/terminal/segments.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- - -import os -import re -import socket - -from powerline.lib.vcs import guess - - -def hostname(): - if not os.environ.get('SSH_CLIENT'): - return None - return socket.gethostname() - - -def user(): - user = os.environ.get('USER') - euid = os.geteuid() - return { - 'contents': user, - 'highlight': 'user' if euid != 0 else ['superuser', 'user'], - } - - -def branch(): - repo = guess(os.path.abspath(os.getcwd())) - if repo: - return repo.branch() - return None - - -def cwd(dir_shorten_len=None, dir_limit_depth=None): - cwd = os.getcwdu() - home = os.environ.get('HOME') - if home: - cwd = re.sub('^' + re.escape(home), '~', cwd, 1) - cwd_split = cwd.split(os.sep) - cwd_split_len = len(cwd_split) - if cwd_split_len > dir_limit_depth + 1: - del(cwd_split[0:-dir_limit_depth]) - cwd_split.insert(0, u'⋯') - cwd = [i[0:dir_shorten_len] if dir_shorten_len and i else i for i in cwd_split[:-1]] + [cwd_split[-1]] - cwd = os.path.join(*cwd) - return cwd diff --git a/powerline/themes/terminal/default.json b/powerline/themes/terminal/default.json index c5e2879b..be399c6c 100644 --- a/powerline/themes/terminal/default.json +++ b/powerline/themes/terminal/default.json @@ -1,4 +1,5 @@ { + "default_module": "powerline.ext.common.segments", "segments": { "left": [ { diff --git a/powerline/themes/tmux/default.json b/powerline/themes/tmux/default.json index 6a468d23..6197db10 100644 --- a/powerline/themes/tmux/default.json +++ b/powerline/themes/tmux/default.json @@ -1,8 +1,8 @@ { + "default_module": "powerline.ext.common.segments", "segments": { "left": [ { - "module": "powerline.ext.terminal.segments", "name": "user" }, {