Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions archinstall/lib/pacman/config.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import atexit
import re
from pathlib import Path
from shutil import copy2

from ..general import running_from_host
from ..models.packages import Repository


Expand Down Expand Up @@ -46,9 +48,14 @@ def apply(self) -> None:
if row + 1 < len(content) and content[row + 1].lstrip().startswith('#'):
content[row + 1] = re.sub(r'^#\s*', '', content[row + 1])

# Write the modified content back to the file
with open(self._config_path, 'w') as f:
f.writelines(content)
# Apply temp using backup then revert on exit handler
if running_from_host():
temp_copy = self._config_path.with_suffix('.bak')
copy2(self._config_path, temp_copy)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every time you're running this apply function you will copy the pacman.conf file, which means if you run it 2 times, it will override the first backup file.

atexit.register(lambda: copy2(temp_copy, self._config_path))
else: # Apply directly
with open(self._config_path, 'w') as f:
f.writelines(content)

def persist(self) -> None:
if self._repositories and self._config_remote_path:
Expand Down