summaryrefslogtreecommitdiff
path: root/etc/guix-install.sh
diff options
context:
space:
mode:
authorDavid Boilleau <david_boilleau@gmx.fr>2024-11-08 15:10:24 +0100
committerLudovic Courtès <ludo@gnu.org>2024-11-14 15:41:22 +0100
commite62dc1ebd0c5afe3b227d1967cae6502589b9b84 (patch)
treee7a91ccf5354648ceb239558a1c192ebff3a13d3 /etc/guix-install.sh
parent8edd08116452bf6ecd3eff7a7f98f9b0991097df (diff)
guix-install.sh: Run the uninstall even if already partially done
Removing users, groups or Systemd units fails if they are already absent, causing the uninstall script to exit. The goal here is to make the uninstall always run entirely, whatever parts are already done. * etc/guix-install.sh (sys_delete_build_user): Test if users and groups exist before deleting them. (sys_delete_guix_daemon): Test if /etc/systemd/system/guix-daemon.service file exists before removing the matching Systemd unit. Change-Id: Ibffb1f1b39de675542fb8057af21ecaea1b53d4c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'etc/guix-install.sh')
-rwxr-xr-xetc/guix-install.sh22
1 files changed, 14 insertions, 8 deletions
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 7fb5ac63c5d..f07b2741bb9 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -451,11 +451,15 @@ sys_create_build_user()
451sys_delete_build_user() 451sys_delete_build_user()
452{ 452{
453 for i in $(seq -w 1 10); do 453 for i in $(seq -w 1 10); do
454 userdel -f guixbuilder${i} 454 if id -u "guixbuilder${i}" &>/dev/null; then
455 userdel -f guixbuilder${i}
456 fi
455 done 457 done
456 458
457 _msg "${INF}delete group guixbuild" 459 _msg "${INF}delete group guixbuild"
458 groupdel -f guixbuild 460 if getent group guixbuild &>/dev/null; then
461 groupdel -f guixbuild
462 fi
459} 463}
460 464
461sys_enable_guix_daemon() 465sys_enable_guix_daemon()
@@ -569,12 +573,14 @@ sys_delete_guix_daemon()
569 ;; 573 ;;
570 574
571 systemd) 575 systemd)
572 _msg "${INF}disabling guix-daemon" 576 if [ -f /etc/systemd/system/guix-daemon.service ]; then
573 systemctl disable guix-daemon 577 _msg "${INF}disabling guix-daemon"
574 _msg "${INF}stopping guix-daemon" 578 systemctl disable guix-daemon
575 systemctl stop guix-daemon 579 _msg "${INF}stopping guix-daemon"
576 _msg "${INF}removing guix-daemon" 580 systemctl stop guix-daemon
577 rm -f /etc/systemd/system/guix-daemon.service 581 _msg "${INF}removing guix-daemon"
582 rm -f /etc/systemd/system/guix-daemon.service
583 fi
578 584
579 if [ -f /etc/systemd/system/gnu-store.mount ]; then 585 if [ -f /etc/systemd/system/gnu-store.mount ]; then
580 _msg "${INF}disabling gnu-store.mount" 586 _msg "${INF}disabling gnu-store.mount"