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" }, {