from commands.util import pacman from commands.util.diff import pkg_diff from commands.util.input_mgr import confirm, password from commands.util.printing.diff import print_diff def commit(force: bool = False, no_render: bool = False): """Commit the changes to the system Args: force: Apply, overriding any changes since the last commit without confirming no_render: Don't rerender the templates (use cached version). Will be ignored if cache is unavailable (and prompt the user) """ # 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 add, remove = pkg_diff([], pacman.list_explicitly_installed()) print_diff(add, remove) if confirm(False, "Do you really want to proceed?"): pacman.install_package_list(add) pacman.uninstall_package_list(remove)