From b0d5fdba75ae168403db1b2b2a825713d6a196b8 Mon Sep 17 00:00:00 2001 From: facetoe Date: Sun, 25 Jan 2015 20:08:06 +0800 Subject: [PATCH] Added example custom keyring backend. --- i3pystatus/core/netrc_backend.py | 27 +++++++++++++++++++++++++++ i3pystatus/core/settings.py | 1 - 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 i3pystatus/core/netrc_backend.py diff --git a/i3pystatus/core/netrc_backend.py b/i3pystatus/core/netrc_backend.py new file mode 100644 index 0000000..342b2e3 --- /dev/null +++ b/i3pystatus/core/netrc_backend.py @@ -0,0 +1,27 @@ +import os + +__author__ = 'facetoe' +from keyring.backend import KeyringBackend + + +# This is an example custom keyring backend. It should probably be somewhere else... +class NetrcBackend(KeyringBackend): + def get_password(self, service, username): + from netrc import netrc + sections = service.split('.') + setting = sections[-1] + if setting == 'password': + key = ".".join(sections[:-1]) + setting_tuple = netrc().authenticators(key) + if setting_tuple: + login, account, password = setting_tuple + return password + + def set_password(self, service, username, password): + raise Exception("Setting password not supported!") + + def priority(cls): + netrc_path = os.path.isfile(os.path.expanduser("~/.netrc")) + if not os.path.isfile(netrc_path): + raise Exception("No .netrc found at: %s" % netrc_path) + return 0.5 diff --git a/i3pystatus/core/settings.py b/i3pystatus/core/settings.py index fe60a73..4d132ba 100644 --- a/i3pystatus/core/settings.py +++ b/i3pystatus/core/settings.py @@ -83,7 +83,6 @@ class SettingsBase: def set_protected_settings(self): for setting_name in self.__PROTECTED_SETTINGS: if hasattr(self, setting_name) and not getattr(self, setting_name): - print("%s.%s" % (self.__name__, setting_name)) setting = self.get_protected_setting("%s.%s" % (self.__name__, setting_name)) if setting: setattr(self, setting_name, setting)