From cc1cb610776e0a6b8fbeba56c4d04d6f3126ee30 Mon Sep 17 00:00:00 2001 From: Jon Bernard Date: Tue, 29 Dec 2015 14:56:07 -0500 Subject: Add dotfile functions for string representation --- dotfiles/dotfile.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/dotfiles/dotfile.py b/dotfiles/dotfile.py index 68c6a20..0fd117f 100644 --- a/dotfiles/dotfile.py +++ b/dotfiles/dotfile.py @@ -27,6 +27,23 @@ class Dotfile: self.name = name self.target = target + def __repr__(self): + return repr((str(self.name), str(self.target), self.state())) + + def __str__(self): + short_name, short_target = self._truncate_paths() + return '{} -> {} {}'.format(short_name, short_target, self.state()) + + def _truncate_paths(self): + discard = len(str(self.name.common(self.target))) + 1 + return (str(self.name)[discard:], str(self.target)[discard:]) + + def state(self): + return '(unknown)' + + def invalid(self): + return self.state != '(ok)' + def add(self): if self.target.check(exists=1): raise OSError(errno.EEXIST, self.target) -- cgit v1.2.3