diff --git a/src/__main__.py b/src/__main__.py index b92985d..28bece1 100644 --- a/src/__main__.py +++ b/src/__main__.py @@ -1,5 +1,10 @@ import os import sys +from src.packages import install_packages + + if os.geteuid() != 0: sys.exit("Please run this program as root user") + +install_packages() diff --git a/src/packages.py b/src/packages.py index e6e4377..fe0dd15 100644 --- a/src/packages.py +++ b/src/packages.py @@ -1,28 +1,38 @@ +import typing as t import yaml from src.util.package import Package, PackageAlreadyInstalled, InvalidPackage +from src.util.install import Install from src.util import log -with open("packages.yaml") as f: - yaml_file = yaml.safe_load(f) -pacman_packages = yaml_file["pacman"] -aur_packages = yaml_file["aur"] -git_packages = yaml_file["git"] +def obtain_packages() -> t.List[Package]: + with open("packages.yaml") as f: + yaml_file = yaml.safe_load(f) -packages = [] -for package in git_packages: - packages.append(Package(package, git=True)) -for package in pacman_packages: - packages.append(Package(package)) -for package in aur_packages: - packages.append(Package(package, aur=True)) + pacman_packages = yaml_file["pacman"] + aur_packages = yaml_file["aur"] + git_packages = yaml_file["git"] -for package in packages: - try: - log.action(f"Installing {package}") - package.install() - except PackageAlreadyInstalled: - log.cancel(f"Package {package} is already installed.") - except InvalidPackage as e: - log.warning(e) + packages = [] + for package in git_packages: + packages.append(Package(package, git=True)) + for package in pacman_packages: + packages.append(Package(package)) + for package in aur_packages: + packages.append(Package(package, aur=True)) + + return packages + + +def install_packages() -> None: + packages = obtain_packages() + Install.upgrade_pacman() + for package in packages: + try: + log.action(f"Installing {package}") + package.install() + except PackageAlreadyInstalled: + log.cancel(f"Package {package} is already installed.") + except InvalidPackage as e: + log.warning(e)