civodul pushed a commit to branch master
in repository guix.

commit e62dc1ebd0c5afe3b227d1967cae6502589b9b84
Author: David Boilleau <[email protected]>
AuthorDate: Fri Nov 8 15:10:24 2024 +0100

    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 <[email protected]>
---
 etc/guix-install.sh | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 7fb5ac63c5..f07b2741bb 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -451,11 +451,15 @@ sys_create_build_user()
 sys_delete_build_user()
 {
     for i in $(seq -w 1 10); do
-        userdel -f guixbuilder${i}
+        if id -u "guixbuilder${i}" &>/dev/null; then
+            userdel -f guixbuilder${i}
+        fi
     done
 
     _msg "${INF}delete group guixbuild"
-    groupdel -f guixbuild
+    if getent group guixbuild &>/dev/null; then
+        groupdel -f guixbuild
+    fi
 }
 
 sys_enable_guix_daemon()
@@ -569,12 +573,14 @@ sys_delete_guix_daemon()
             ;;
 
         systemd)
-            _msg "${INF}disabling guix-daemon"
-            systemctl disable guix-daemon
-            _msg "${INF}stopping guix-daemon"
-            systemctl stop guix-daemon
-            _msg "${INF}removing guix-daemon"
-            rm -f /etc/systemd/system/guix-daemon.service
+            if [ -f /etc/systemd/system/guix-daemon.service ]; then
+                _msg "${INF}disabling guix-daemon"
+                systemctl disable guix-daemon
+                _msg "${INF}stopping guix-daemon"
+                systemctl stop guix-daemon
+                _msg "${INF}removing guix-daemon"
+                rm -f /etc/systemd/system/guix-daemon.service
+            fi
 
             if [ -f /etc/systemd/system/gnu-store.mount ]; then
                 _msg "${INF}disabling gnu-store.mount"

Reply via email to