summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2015-10-06 22:46:33 +0300
committerLars Wirzenius <liw@liw.fi>2015-10-06 22:46:33 +0300
commit3f19ba98354b19ec0d95f5053b020132bf69df71 (patch)
tree835b28a966a781029806f41fd6fafc7032f66924
parentf9495680d7e018d50f39f0e9096939299db65fcc (diff)
downloadclab-3f19ba98354b19ec0d95f5053b020132bf69df71.tar.gz
Show results of find with pretty multiline strings
-rwxr-xr-xclab16
1 files changed, 15 insertions, 1 deletions
diff --git a/clab b/clab
index df4ec52..18bc9c3 100755
--- a/clab
+++ b/clab
@@ -33,7 +33,7 @@ class Entry(object):
self._dict = parsed_yaml
def as_yaml(self):
- return yaml.safe_dump(self._dict, default_flow_style=False)
+ return yaml.dump(self._dict, default_flow_style=False)
def get_single(self, key, default):
names = self.get_subdict(key)
@@ -103,6 +103,20 @@ class CommandLineAddressBook(cliapp.Application):
metavar='DIR',
default=[os.path.expanduser('~/.local/share/clab')])
+ def setup(self):
+ # Configure yaml.dump (but not yaml.safe_dump) to print multiline
+ # strings prettier.
+
+ def text_representer(dumper, data):
+ if '\n' in data:
+ return dumper.represent_scalar(
+ u'tag:yaml.org,2002:str', data, style='|')
+ return dumper.represent_scalar(
+ u'tag:yaml.org,2002:str', data, style='')
+
+ yaml.add_representer(str, text_representer)
+ yaml.add_representer(unicode, text_representer)
+
def load_address_book(self):
book = AddressBook()
for database in self.settings['database']: