Add condition to symlink

This commit is contained in:
flyingscorpio@arch-desktop 2020-04-23 16:49:03 +02:00
parent ab33887f8f
commit 1ae0c15145

View file

@ -31,6 +31,8 @@ class Installer:
"""Run a bash command. On success return True, else return False."""
conditions = {
"arch": self.operating_system == "arch based",
"debian": self.operating_system == "debian based",
"force": self.force,
"no force": not self.force,
"update": self.update,
@ -167,22 +169,31 @@ class Installer:
ui.warning("`{}` failed".format(command))
self.base_dir.chdir()
def do_symlink(self, src: str, dest: str) -> None:
def do_symlink(self, src: str, dest: str, condition: str = "true") -> None:
"""Make a symlink to a file."""
self._do_symlink(src, dest, is_dir=False)
self._do_symlink(src, dest, condition=condition, is_dir=False)
def do_symlink_dir(self, src: str, dest: str) -> None:
def do_symlink_dir(
self, src: str, dest: str, condition: str = "true"
) -> None:
"""Make a symlink to a dir."""
self._do_symlink(src, dest, is_dir=True)
self._do_symlink(src, dest, condition=condition, is_dir=True)
def _do_symlink(
self, src: str, dest: str, *, condition: str, is_dir: bool
) -> None:
def _do_symlink(self, src: str, dest: str, *, is_dir: bool) -> None:
p_src = Path(src).expanduser()
pretty_src = self.pretty_path(p_src)
p_dest = Path(dest).expanduser()
pretty_dest = self.pretty_path(p_dest)
if not self.evaluate_condition(condition):
ui.info_2("Skipping", pretty_dest)
return
if is_dir:
p_dest.parent.parent.makedirs_p()
else: