diff --git a/rbackup/hierarchy/snapshot.py b/rbackup/hierarchy/snapshot.py index d92feb4..c3e3630 100644 --- a/rbackup/hierarchy/snapshot.py +++ b/rbackup/hierarchy/snapshot.py @@ -19,12 +19,83 @@ class Snapshot(Hierarchy): ---------- * path (inherited from Hierarchy) * name (inherited from Hierarchy) + * boot_dir + * etc_dir + * home_dir + * root_home_dir """ def __init__(self, path): """Default constructor for the Snapshot class.""" super().__init__(path) + @property + def boot_dir(self): + """Retrieve the /boot backup directory of this snapshot. + + Example + ------- + >>> s = Snapshot('backup/data/snapshot-new') + >>> s.boot_dir + PosixPath('backup/data/snapshot-new/boot/loader') + + :rtype: path-like object + """ + return self.path / "boot" / "loader" + + @property + def etc_dir(self): + """Retrieve the /etc backup directory of this snapshot. + + Example + ------- + >>> s = Snapshot('backup/data/snapshot-new') + >>> s.etc_dir + PosixPath('backup/data/snapshot-new/etc') + + :rtype: path-like object + """ + return self.path / "etc" + + @property + def home_dir(self): + """Retrieve the /home backup directory of this snapshot. + + Example + ------- + >>> s = Snapshot('backup/data/snapshot-new') + >>> s.home_dir + PosixPath('backup/data/snapshot-new/home') + + :rtype: path-like object + """ + return self.path / "home" + + @property + def pkg_dir(self): + """Retrieve the package manager backup directory of this snapshot. + >>> s = Snapshot('backup/data/snapshot-new') + >>> s.pkg_dir + PosixPath('backup/data/snapshot-new/pkg') + + :rtype: path-like object + """ + return self.path / "pkg" + + @property + def root_home_dir(self): + """Retrieve root's home directory of this snapshot. + + Example + ------- + >>> s = Snapshot('backup/data/snapshot-new') + >>> s.root_home_dir + PosixPath('backup/data/snapshot-new/root') + + :rtype: path-like object + """ + return self.path / "root" + # ========== Functions ========== if __name__ == "__main__":