Add condition to symlink
This commit is contained in:
parent
ab33887f8f
commit
1ae0c15145
1 changed files with 16 additions and 5 deletions
21
install.py
21
install.py
|
@ -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:
|
||||
|
|
Loading…
Add table
Reference in a new issue