40 lines
852 B
Python
40 lines
852 B
Python
|
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)
|