aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dotfiles/dotfile.py17
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)