23 lines
920 B
Python
23 lines
920 B
Python
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)
|