Run install packages when the file started directly

This commit is contained in:
ItsDrike 2020-10-22 19:02:23 +02:00
parent 555a2d0599
commit 37c6db12a3
No known key found for this signature in database
GPG key ID: F4E8FF4F6AC7F3B4
3 changed files with 41 additions and 41 deletions

View file

@ -3,7 +3,7 @@ import yaml
from src.util.package import Package, PackageAlreadyInstalled, InvalidPackage
from src.util.install import Install
from src.util import log
from src.util.user import Print
def obtain_packages() -> t.List[Package]:
@ -30,9 +30,13 @@ def install_packages() -> None:
Install.upgrade_pacman()
for package in packages:
try:
log.action(f"Installing {package}")
Print.action(f"Installing {package}")
package.install()
except PackageAlreadyInstalled:
log.cancel(f"Package {package} is already installed.")
Print.cancel(f"Package {package} is already installed.")
except InvalidPackage as e:
log.warning(e)
Print.warning(e)
if __name__ == "__main__":
install_packages()

View file

@ -1,37 +0,0 @@
import typing as t
from src.util.color import Color
def question(question: str, options: t.Optional[list] = None) -> None:
"""Print syntax for question with optional `options` to it"""
text = [f"{Color.GREEN} // {question}{Color.RESET}"]
if options:
for option in options:
text.append(f"{Color.GREEN} # {options}{Color.RESET}")
print("\n".join(text))
def action(action: str) -> None:
"""Print syntax for action"""
print(f"{Color.GOLD} >> {action}{Color.RESET}")
def err(text: str) -> None:
"""Print syntax for error"""
print(f"{Color.RED} !! {text}{Color.RESET}")
def cancel(text: str) -> None:
"""Print syntax for cancellation"""
print(f"{Color.GREY} >> {text}{Color.RESET}")
def comment(text: str) -> None:
"""Print syntax for comments"""
print(f"{Color.GREY} // {text}{Color.RESET}")
def warning(text: str) -> None:
"""Print syntax for warnings"""
print(f"{Color.YELLOW} ** {text}{Color.RESET}")

33
src/util/user.py Normal file
View file

@ -0,0 +1,33 @@
import typing as t
from src.util.color import Color
class Print:
def question(question: str, options: t.Optional[list] = None) -> None:
"""Print syntax for question with optional `options` to it"""
text = [f"{Color.GREEN} // {question}{Color.RESET}"]
if options:
for option in options:
text.append(f"{Color.GREEN} # {options}{Color.RESET}")
print("\n".join(text))
def action(action: str) -> None:
"""Print syntax for action"""
print(f"{Color.GOLD} >> {action}{Color.RESET}")
def err(text: str) -> None:
"""Print syntax for error"""
print(f"{Color.RED} !! {text}{Color.RESET}")
def cancel(text: str) -> None:
"""Print syntax for cancellation"""
print(f"{Color.GREY} >> {text}{Color.RESET}")
def comment(text: str) -> None:
"""Print syntax for comments"""
print(f"{Color.GREY} // {text}{Color.RESET}")
def warning(text: str) -> None:
"""Print syntax for warnings"""
print(f"{Color.YELLOW} ** {text}{Color.RESET}")