diff --git a/commands/commit.py b/commands/commit.py index 8136e6a..b2b0d8a 100644 --- a/commands/commit.py +++ b/commands/commit.py @@ -1,6 +1,6 @@ from typing import List from commands.util import pacman -from commands.util.input_mgr import confirm_overwrite, password +from commands.util.input_mgr import confirm, password import colorama as cl from commands.util.printer import print_list @@ -10,22 +10,66 @@ def commit(force: bool = False, no_render: bool = False): print("Commit, force:", force) # TODO: Make sure we don't uninstall critical system packages by accident (i.e. prompt user) # Probably do that check in the pacman util lib tho - # pw = password() print_diff(pacman.list_explicitly_installed(), []) - print(confirm_overwrite()) + if confirm(True, "Do you really want to proceed?"): + pw = password() def print_diff(add: List[str], remove: List[str]): + if len(add) == 0 and len(remove) == 0: + print( + cl.Fore.BLUE + + "-->" + + cl.Style.DIM + + cl.Fore.GREEN + + " No packages changes" + + cl.Style.RESET_ALL, + ) + # Packages to be installed + if len(add) == 0: + print( + cl.Fore.BLUE + + "-->" + + cl.Style.DIM + + cl.Fore.GREEN + + " No packages to be installed" + + cl.Style.RESET_ALL, + ) + else: + print( + cl.Fore.GREEN + "==>", + cl.Style.RESET_ALL + "Packages that will be", + cl.Fore.GREEN + "installed" + cl.Style.RESET_ALL, + ) + print_list(add) + print() + + # Packages to be removed + if len(remove) == 0: + print( + cl.Fore.BLUE + + "-->" + + cl.Style.DIM + + cl.Fore.GREEN + + " No packages to be uninstalled" + + cl.Style.RESET_ALL, + ) + else: + print( + cl.Fore.GREEN + "==>", + cl.Style.RESET_ALL + "Packages that will be", + cl.Fore.RED + "uninstalled" + cl.Style.RESET_ALL, + ) + print_list(remove) + print() + + # Ask user to confirm print( cl.Fore.GREEN + "==>", - cl.Style.RESET_ALL + "Packages that will be", - cl.Fore.GREEN + "installed" + cl.Style.RESET_ALL, - ) - - print_list(add) - - print( - cl.Fore.GREEN + "==>", - cl.Style.RESET_ALL + "Packages that will be", + cl.Style.RESET_ALL + + f"Transaction (packages): {cl.Fore.BLUE + str(len(add)) + cl.Style.RESET_ALL}", + cl.Fore.GREEN + "installed", + cl.Style.RESET_ALL + + f"and {cl.Fore.BLUE + str(len(remove)) + cl.Style.RESET_ALL}", cl.Fore.RED + "uninstalled" + cl.Style.RESET_ALL, ) diff --git a/commands/config.py b/commands/config.py index fbab427..9994a63 100644 --- a/commands/config.py +++ b/commands/config.py @@ -1,6 +1,8 @@ +from commands.util import pacman + + def config(): - print( - """ + print(""" Your config can be found at - """ - ) + """) + pacman.install_package_list(["chromium"]) diff --git a/commands/util/pacman.py b/commands/util/pacman.py index b97526d..4395acf 100644 --- a/commands/util/pacman.py +++ b/commands/util/pacman.py @@ -19,7 +19,7 @@ def remove_orphans() -> bool: Returns: True if successful, False otherwise """ - return sp.run("pacman -Qdtq | pacman -Rnsy -", capture_output=True).returncode == 0 + return sp.run("pacman -Qdtq | sudo pacman -Rns --noconfirm -", capture_output=True).returncode == 0 def uninstall_package_list(pkgs: List[str]) -> bool: diff --git a/commands/util/printer.py b/commands/util/printer.py index 320a748..350d850 100644 --- a/commands/util/printer.py +++ b/commands/util/printer.py @@ -13,8 +13,8 @@ def print_list(list: List[Any]): " " + cl.Fore.BLUE + cl.Style.DIM - + (" " * (digit_count - count_digits(i))) - + str(i) + + (" " * (digit_count - count_digits(i + 1))) + + str(1 + i) + cl.Style.RESET_ALL + " ", pkg, )