diff options
-rw-r--r-- | dotfiles/dotfile.py | 17 |
1 files changed, 17 insertions, 0 deletions
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) |