recipes/machine_admin/package_manager.py

40 lines
852 B
Python
Raw Normal View History

import logging
from util import run_op
class AptInterface:
def __init__(self):
pass
def update(self):
op = "apt-get update"
logging.info(f"Updating apt: {op}")
run_op(op)
def upgrade(self):
op = "apt-get -y upgrade"
logging.info(f"Upgrading via apt: {op}")
run_op(op)
def install_packages(self, packages: list):
packages_str = "".join(packages)
op = f"apt-get install -y {packages_str}"
logging.info(f"Installing packages: {op}")
run_op(op)
class PackageManager:
def __init__(self):
self.apt = AptInterface()
def update(self):
self.apt.update()
def upgrade(self):
self.update()
self.apt.upgrade()
def install_packages(self, packages: list):
self.apt.install_packages(packages)