diff options
| author | Sergio <sergiotarxz@posteo.net> | 2026-08-26 15:52:20 +0200 |
|---|---|---|
| committer | Sergio <sergiotarxz@posteo.net> | 2026-08-26 15:52:20 +0200 |
| commit | eb49d8c1250972c9980ee6f13ae30e4afe02d916 (patch) | |
| tree | 407040912d40b11c42d52fcad3563f80e5f319f5 | |
| parent | 8baa8640d5812a7f93bcd0d5da49735fea987e05 (diff) | |
Preserve old etc.olds.
| -rw-r--r-- | lib/AlgaOS/Installer/GUI.pm | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/AlgaOS/Installer/GUI.pm b/lib/AlgaOS/Installer/GUI.pm index ce482b5..642d236 100644 --- a/lib/AlgaOS/Installer/GUI.pm +++ b/lib/AlgaOS/Installer/GUI.pm @@ -457,7 +457,8 @@ sub _restore_system ( $self, $archive, $root, $preserve_etc ) { $sudo->( 'tar', '-tf', $archive ); - my $old = "$root/etc.old"; + my $old_etc_name = 'etc.old.'.int(rand(1000000000)); + my $old = "$root/$old_etc_name"; eval { $sudo->( 'cp', '-a', '--', "$root/etc", $old ); }; @@ -467,7 +468,7 @@ sub _restore_system ( $self, $archive, $root, $preserve_etc ) { 'boot', '!', '-name', 'grub_hash', '!', '-name', 'recovery', '!', '-name', 'home', '!', '-name', - 'etc.old', '-exec', 'rm', '-rf', + $old_etc_name, '-exec', 'rm', '-rf', '--', '{}', '+' ); @@ -477,9 +478,9 @@ sub _restore_system ( $self, $archive, $root, $preserve_etc ) { $root, '--numeric-owner', '--xattrs-include=*', '--exclude=home', '--exclude=./home', '--exclude=home/*', - '--exclude=./home/*', '--exclude=etc.old', - '--exclude=./etc.old', '--exclude=etc.old/*', - '--exclude=./etc.old/*', '--exclude=grub_hash', + '--exclude=./home/*', '--exclude='.$old_etc_name, + "--exclude=./$old_etc_name", "--exclude=$old_etc_name/*", + "--exclude=./$old_etc_name/*", '--exclude=grub_hash', '--exclude=./grub_hash', ); |
