diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index 028a0ea1a..1d5673abe 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -30,7 +30,7 @@ class PackageManager: def __init__(self, backend): self.backend = backend - def install(self, pkgs): + def install(self, pkgs, from_local=False): """ Installs packages. :param pkgs: @@ -53,7 +53,8 @@ class PackageManager: elif self.backend == "apt": check_chroot_call(["apt-get", "-q", "-y", "install"] + pkgs) elif self.backend == "pacman": - check_chroot_call(["pacman", "-Sy", "--noconfirm"] + pkgs) + pacman_flags = "-U" if from_local else "-Sy" + check_chroot_call(["pacman", pacman_flags, "--noconfirm"] + pkgs) def remove(self, pkgs): """ Removes packages. @@ -90,6 +91,8 @@ def run_operations(pkgman, entry): pkgman.install(entry[key]) elif key == "remove": pkgman.remove(entry[key]) + elif key == "localInstall": + pkgman.install(entry[key], from_local=True) def run(): diff --git a/src/modules/packages/packages.conf b/src/modules/packages/packages.conf index 6cfe8b7a5..d96267a88 100644 --- a/src/modules/packages/packages.conf +++ b/src/modules/packages/packages.conf @@ -39,3 +39,5 @@ backend: packagekit # install: # - pkgs6 # - pkg7 +# - localInstall: +# - /path/to/pkg8